如何从数据库中读取数据并将其放入模型中
本文关键字:模型 数据 数据库 读取 | 更新日期: 2023-09-27 17:58:10
我正在构建一个应用程序,在其中存储一个国家的省市。我有两种型号:
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;
}
我知道我可以从阅读器["ProvinceID"]获得ProvinceID,但我不知道我应该在哪里获得省份数据本身?我应该从ProvinceViewModel获得它吗?
既然我的视图模型在不同的项目中,我该怎么做?
我真的不知道我错在哪里了?
如果不使用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"]));
});