我正在构建一个应用程序,用于存储一个国家/地区的省份和城市。我有两个模型:
public class Province
{
public int ID { get; set; }
public string Name { get; set; }
}
public class City
{
public int ID { get; set; }
public string Name { get; set; }
public Province Province { get; set; }
}
这是我从数据库中读取省数据的方式:
public static List<Province> ReadList()
{
var list = new List<Province>();
using (var connection = new MySqlConnection(_connectionString))
{
using (var cmd = new MySqlCommand("SELECT * FROM Province;", connection))
{
connection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add(new Province()
{
ID = Convert.ToInt32(reader["ID"]),
Name = reader["Name"].ToString()
});
}
reader.Close();
}
}
return list;
}
它工作正常。我的问题是在阅读城市数据时:
public static List<City> ReadList()
{
var list = new List<City>();
using (var connection = new MySqlConnection(_connectionString))
{
using (var cmd = new MySqlCommand("SELECT * FROM City;", connection))
{
connection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
list.Add(new Province()
{
ID = Convert.ToInt32(reader["ID"]),
Name = reader["Name"].ToString(),
Province = ???
});
}
reader.Close();
}
}
return list;
}
我知道我可以从读者那里获得省份ID [&#34;省份ID&#34;]但我不知道我应该在哪里获得省份数据?我应该从ProvinceViewModel获取它吗?
由于我的视图模型位于不同的项目中,我该怎么做?
我真的不知道我在哪里错了?
答案 0 :(得分:1)
问题的解决方案,不使用ORM,它将是以下内容:
下var list = new List<City>();
声明包含所有省份的列表并将其填入您所拥有的省份 - 您可以按照上述说明阅读数据。
var provinces = GetProvinces();
方法GetProvinces
返回我们所有省份的列表。
然后在该方法中,您将阅读城市的每条记录:
list.Add(new City()
{
ID = Convert.ToInt32(reader["ID"]),
Name = reader["Name"].ToString(),
Province = provinces.SingleOrDefault(x=>x.ID==Convert.ToInt32(reader["ProvinceID"]));
});