たとえば、次の列を返す 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
、このアンダースコア表記は AutoMapper で構築されていないため、ネストされたプロパティは null のままです。
これをサポートするために AutoMapper を拡張する方法はありますか?
備考: Entity Framework でうまく機能し、EF と AutoMapper で異なるビューを使用したくないため、この表記法を使用しています。