首页 > 移动平台 > 详细

AutoMapper指定列名进行映射

时间:2017-05-22 10:53:34      阅读:347      评论:0      收藏:0      [点我收藏+]

有了AutoMapper,就再也不用进行手工一对一的从IDataReader到实体字段的赋值。这篇博文是一个实际案例的记录。

实体类型定义如下:

public class UploadImage
{
    public int Id { get; set; }
    public string Src { get; set; }
}

 

Src属性在数据库中对应的字段名为ImageUrl。

映射要求:从IDataReader到IEnumerable<UploadImage>,代码如下:

using (var conn = new SqlConnection(ConnectionStrings.Default))
{
    using (var command = conn.CreateCommand())
    {
        command.CommandType = System.Data.CommandType.Text;
        command.CommandText = "...";
        await conn.OpenAsync();
        using (IDataReader reader = await command.ExecuteReaderAsync())
        {
            return AutoMapper.Mapper.Map<IDataReader, IEnumerable<UploadImage>>(reader);
        }
    }
}

 

通过 IMappingExpression.ForMember() 方法配置AutoMapper可以实现这个映射,代码如下:

//这里非常具有代表性
AutoMapper.Mapper.CreateMap<IDataReader, UploadImage>() .ForMember(dest => dest.Src, options => options.MapFrom( src => src.GetString(src.GetOrdinal("ImageUrl"))));

 

AutoMapper指定列名进行映射

原文:http://www.cnblogs.com/sexintercourse/p/6888336.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!