平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html#skill
先看效果:(完整Demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/05.AutoMapper)
原来是这么干的:
有了AutoMapper是这么干的:
————————————————————
1.AutoMapper初始化
2.配置文件
3.对象映射配置(ConstructUsing 和 ForMember 用的比较多)
扩展类:
完整Demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/05.AutoMapper
把扩展类贴一下吧:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
/// <summary>
/// AutoMapper扩展类
/// </summary>
public
static
class
AutoMapperExt
{
#region 由AutoMapper创建目标对象
/// <summary>
/// 类型映射-由AutoMapper创建目标对象
/// </summary>
public
static
T MapTo<T>(
this
object
obj)
{
if
(obj ==
null
)
return
default
(T);
return
Mapper.Map<T>(obj);
}
/// <summary>
/// 集合列表类型映射-由AutoMapper创建目标对象
/// </summary>
public
static
IEnumerable<TDestination> MapToList<TDestination>(
this
IEnumerable source)
{
if
(source ==
null
)
return
new
List<TDestination>();
return
Mapper.Map<IEnumerable<TDestination>>(source);
}
#endregion
#region 把源对象中的属性值合并/覆盖到目标对象
/// <summary>
/// 类型映射-把源对象中的属性值合并/覆盖到目标对象
/// </summary>
public
static
TDestination MapTo<TSource, TDestination>(
this
TSource source, TDestination destination)
where
TSource :
class
where
TDestination :
class
{
if
(source ==
null
)
return
destination;
return
Mapper.Map(source, destination);
}
/// <summary>
/// 集合列表类型映射-把源对象中的属性值合并/覆盖到目标对象
/// </summary>
public
static
IEnumerable<TDestination> MapToList<TSource, TDestination>(
this
IEnumerable<TSource> source, IEnumerable<TDestination> destination)
{
return
Mapper.Map(source, destination);
}
#endregion
#region DataReader映射
/// <summary>
/// DataReader映射
/// </summary>
public
static
IEnumerable<T> DataReaderMapTo<T>(
this
System.Data.IDataReader reader)
{
Mapper.Initialize(cfg => cfg.CreateMap<System.Data.IDataReader, IEnumerable<T>>());
return
Mapper.Map<System.Data.IDataReader, IEnumerable<T>>(reader);
}
#endregion
}
|
本文转自毒逆天博客园博客,原文链接:http://www.cnblogs.com/dunitian/p/5606276.html,如需转载请自行联系原作者