zoukankan      html  css  js  c++  java
  • AutoMapper指定列名进行映射

    有了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")))); 

    【参考资料】

    Mapping From IDataReader/IDataRecord with AutoMapper

  • 相关阅读:
    JS继承
    Liunx 常用命令2
    团队作业(四)
    OpenEuler树莓派基础实验(无树莓派)
    thread同步测试
    团队作业(三)
    实验二测试
    浅谈JWT。
    monolog使用 brady
    Blazor Server获取Token访问外部Web Api
  • 原文地址:https://www.cnblogs.com/dudu/p/automapper-createmap-idatareader-formember-mapfrom.html
Copyright © 2011-2022 走看看