例如我有DB视图,它返回这些列:
Id int
Name nvarchar(200)
PrimaryAddress_Street nvarchar(200)
PrimaryAddress_City nvarchar(200)
我想把它映射到我的DTO:
public class Customer {
public int Id { get; set; }
public string Name { get; set; }
public Address PrimaryAddress { get; set; }
}
public class Address {
public string Street { get; set; }
public string City { get; set; }
}
我想使用AutoMapper来做到这一点。
我已将IDataRecord
映射到我的DTO,然后直接从ADO.NET DbDataReader
中读取它:
CreateMap<IDataRecord, Customer>();
var result = Mapper.Map<IDataReader, IEnumerable<Customer>>(reader);
适用于Customer
DTO中的基本属性。但当然嵌套的PrimaryAddress
属性保留为null,因为此下划线表示法不是在AutoMapper中构建的。
您是否有任何想法如何扩展AutoMapper以支持此功能?
备注:我们使用这种表示法,因为它适用于Entity Framework,我不希望为EF和AutoMapper提供不同的视图。