如何使用automapper将深对象转换为平面对象并返回?
例如:
Person
{
public string Name { get; set; }
public Address Address { get; set; }
}
Address
{
public string City { get; set; }
public string State { get; set; }
}
FlatObject
{
public string Name { get; set; }
public string City { get; set; }
public string State { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
有两种方法可以做到这一点:
定义两个映射,一个来自FlatObject --> Person
另一个映射FlatObject --> Address
:
Mapper.CreateMap<FlatObject, Address>();
Mapper.CreateMap<FlatObject, Person>()
.ForMember(dest => dest.Address, opt => opt.MapFrom(src => src));
Run Code Online (Sandbox Code Playgroud)定义一个映射并Address
在映射定义中创建对象:
Mapper.CreateMap<FlatObject, Person>()
.ForMember(
dest => dest.Address,
opt => opt.MapFrom(
src => new Address { City = src.City, State = src.State }));
Run Code Online (Sandbox Code Playgroud)我个人会选择选项1.这样,如果你添加属性FlatObject
,你不必担心更新映射定义(如果使用选项#2,你会想到).
但是,@Raphaël指出作者的链接是正确的,该链接质疑映射到域对象的有效性.
归档时间: |
|
查看次数: |
2882 次 |
最近记录: |