Automapper - 使用下划线作为嵌套对象读取属性

时间:2015-01-02 11:43:02

标签: sql orm mapping automapper automapper-3

例如我有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提供不同的视图。

0 个答案:

没有答案