c# - 获取列表来自数据表
问题描述
我正在尝试从 DataTable 获取 myModel 列表。可以确定 myModel 匹配 DataTable 中的字段。
例如,DataTable 如下:
Name id
Trump 1
Obama 0
myModel 如下:
class user{
public string name { get; set; }
public long id{ get; set; }
}
我知道如何使用 DataAdapter 获取 DataRow 列表。但我仍然需要手动将数据行中的值逐列转换为 myModel 。
现在,我只能从 dataReader 手动获取 myModel 的列表,这很愚蠢。
public List<user> get_users(string user_name)
{
var user_list = new List<user>();
using (SqlConnection connection = new SqlConnection(connStr))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand("exec select_user @name='" + + "'", connection))
{
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
user_list.Add(new user()
{
id = Convert.ToInt64(reader["id"]),
name = Convert.ToString(reader["name"]),
});
}
}
connection.Close();
}
return user_list;
}
解决方案
您要么手动完成,要么使用对象关系映射技术,如 Microsoft 的 Entity Framework 或另一种如 NHibernate。
推荐阅读
- c++ - boost::asio 如何生成多个协程,然后加入它们?
- javascript - Javascript - 如何访问对象
- laravel - 使用 laravel 对用户隐藏侧边栏菜单
- neo4j - 如何使用 neo4j 的属性值建立关系
- c++ - 递归模板函数不能分配给具有 const 限定类型“const tt &”的变量“状态”
- html - 如何使用 css 制作平坦而不实心的边框?
- react-native - 反应原生谷歌地图
- php - yii\base\InvalidRouteException: 无法解析 yii2 中的请求
- c# - 消息弹出窗口
- webpack - 无法在 Chrome 源选项卡中加载 webpack 源文件的内容