首页 > 解决方案 > 获取列表来自数据表

问题描述

我正在尝试从 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;
}

标签: c#sqlasp.netsql-serverado.net

解决方案


您要么手动完成,要么使用对象关系映射技术,如 Microsoft 的 Entity Framework 或另一种如 NHibernate。


推荐阅读