3

例如我有返回这些列的数据库视图:

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);

它适用于CustomerDTO 中的基本属性。但是当然嵌套PrimaryAddress属性保留为空,因为这个下划线符号不是在 AutoMapper 中构建的。

您有任何想法如何扩展 AutoMapper 以支持此功能吗?

备注:我们使用这种表示法是因为它适用于实体框架,我不想对 EF 和 AutoMapper 有不同的看法。

4

0 回答 0