• 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"))));
  • 相关阅读:
    1、一条sql查询语句的执行过程
    go 内存分配
    GO Json
    gorm CRUD:读写数据
    go 基于切片的队列实现
    go的错误处理
    grpc
    sqlalchemy 判断字段是否存在
    定时函数
    用Python获取Linux资源信息的三种方法
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/6888336.html
Copyright © 2020-2023  润新知