例如我有返回这些列的数据库视图:
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
属性保留为空,因为这个下划线符号不是在 AutoMapper 中构建的。
您有任何想法如何扩展 AutoMapper 以支持此功能吗?
备注:我们使用这种表示法是因为它适用于实体框架,我不想对 EF 和 AutoMapper 有不同的看法。