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
AutoMapper指定列名进行映射的更多相关文章
- SQLServer获取临时表所有列名或是否存在指定列名的方法
获取临时表中所有列名 select name from tempdb.dbo.syscolumns where id=object_id( '#TempTB') 判断临时表中是否存在指定列名 if c ...
- MFC:AfxLoadLibrary-将指定的 DLL 映射到调用进程的地址空间
Visual Studio 2012 - Visual C++ LoadLibrary 和 AfxLoadLibrary 进程调用 LoadLibrary (或 AfxLoadLibrary) 以显式 ...
- NetCore+AutoMapper多个对象映射到一个Dto对象
目录 一. 定义源映射类和被映射类DTO二.注入AutoMapper三.配置映射四.写测试 一.定义源映射对象 为了体现AutoMapper映射特性,在SocialAttribute中的Name属性没 ...
- Django学习路10_创建一个新的数据库,指定列名并修改表名
在 models.py 中添加 from django.db import models # Create your models here. class Person(models.Model): ...
- 使用AutoMapper进行对象间映射
在开发过程中,难免遇到下面这种情况:两个(或多个)对象所拥有的大多数属性是重复的,我们需要在对象间进行映射(即将一个对象的属性值赋给另一个对象.通常我们可以进行如下操作: A a=new A(); a ...
- AutoMapper搬运工之自定义映射
回顾 上节说到了AutoMapper的简单使用,对于复杂的Mapping需要强大的自定义,这节我们来看下AutoMapper的自定义Mapping(Projection) 搬运自Git:https:/ ...
- AutoMapper 创建嵌套对象映射(原创)
之前在做DTO转换时,用到AutoMapper.但DTO的层次太深了,无奈官方没针对嵌套类型提供好的解决方案,于是自己实现了一下: 思路:采用递归和反射很好的避免手工创建嵌套对象的映射. 第一个版本, ...
- 【来龙去脉系列】AutoMapper一款自动映射框架
前言 通常在一个应用程序中,我们开发人员会在两个不同的类型对象之间传输数据,通常我们会用DTOs(数据传输对象),View Models(视图模型),或者直接是一些从一个service或者Web AP ...
- Java注解(Annotation)用法:利用注解和反射机制指定列名导出数据库数据
闲来没事,想了一个应用的例子:用java如何把数据库的数据根据我们指定的某几列,如第2列,第4列,第6列导出来到Excel里? 写代码也是为了应用的,写好的代码更重要的是在于思考.我自己思考了这个示例 ...
随机推荐
- EmptyRecycle() 清空回收站
//在uses下面引用 function SHEmptyRecycleBinA(Wnd:HWND;str:PChar;WRD:DWORD):Integer;stdcall; external 'SHe ...
- 温习SQL server
做了好几年的管理工作,技术上有些退步,现在又一一捡起来啦, 以下最近几天看到的好文章, SQL Server约束 http://blog.csdn.net/qq61394323/article/det ...
- 8.1H5学习笔记
内嵌框架 说明: 属性 属性值 说明 width px,% 指定框架的宽度 height px,% 指定框架的高度 scrolling yes,no,auto 是否显示滚动条 frameborder ...
- LCD如何显示图像
1.LCD显示主要相关概念 (1)像素(pixel) 整个图像是由一个个的像素组成的,像素就是一个显示点.像素就是组成图像的最基本元素,或者说显示中可以被控制的最小单位,整个图像就是由很多个像素组成的 ...
- 慕课网JavaScript入门篇课程笔记
1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...
- TCP通讯socket自定义协议的实现
转发(JAVA):http://blog.csdn.net/u010818425/article/details/53448817 一个简单的自定义通信协议(socket),http://blog.c ...
- java多线程-Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...
- 【实(dou)力(bi)首(mai)发(meng)】第四次CCF软件能力认证题解
这次的题总体上相对前三次偏简单.由于实力有限,就分析前四题. 试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题 ...
- [C#-SQLite] SQLite一些奇怪的问题
今天整C#的DAO层,我用的2013, 用的4.0的.NetFramework刚刚创建完Helper就出现异常 + Connection "helper.Connecti ...
- 字符串链接strcat
#include "stdafx.h" #include "iostream" #include "assert.h" #include & ...