将AutoMapper与数据读取器配合使用

时间:2014-09-05 07:57:01

标签: c# .net asp.net-mvc-4 automapper

我经历了How can I easily convert DataReader to List<T>?

我想在上面的链接中实现类似于答案的内容。

Scenrio:

我正在使用OdbcDataReader从数据库中检索。

我有一个模型类。仅供参考,此类的属性是数据库中列名的精确副本。我需要将这些列映射到属性并返回List 这可以使用Automapper完成。

1 个答案:

答案 0 :(得分:9)

像这样的东西

public List<T> ReadData<T>(string queryString)
{
    using (var connection = new SqlConnection(constr))
        using (var command = new SqlCommand(queryString, connection))
        {
            connection.Open();
            using (var reader = command.ExecuteReader())
                if (reader.HasRows)
                    return Mapper.DynamicMap<IDataReader, List<T>>(reader);
        }

    return null;
}

定义你的班级

public class MarkType
{
    public int id { get; set; }
    public string name { get; set; }
    public DateTime inserted { get; set; }
}

使用

List<MarkType> lst = _helper.ReadData<MarkType>("SELECT [id],[name],[inserted] FROM [marktype]");