从DataTable获取List <mymodel>

时间:2018-06-08 18:08:22

标签: c# sql asp.net sql-server ado.net

我正在尝试从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列表。但是我仍然需要手动将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;
}

1 个答案:

答案 0 :(得分:0)

您可以手动执行此操作,也可以使用Microsoft的实体框架之类的对象关系映射技术或NHibernate等其他方法。