2
比方说,我有存储在我的数据库中呈扁平状的接触,这样我询问他们是这样的:小巧玲珑多映射两个相同类型的属性
SELECT Name, HomeHouseNumber, HomePostcode, WorkHouseNumber, WorkPostcode FROM Contacts
我想多一点的结构,我C#代码,并具有与家庭和工作地址联系的简单定义。
class Address
{
public string HouseNumber { get; set; }
public string Postcode { get; set; }
}
class Contact
{
public string Name { get; set; }
public Address HomeAddress { get; set; }
public Address WorkAddress { get; set; }
}
我发现我可以使用多映射不通过走样列在选择这样提取的家庭住址:
IEnumerable<Contact> GetContacts()
{
return Connection.Query<Contact, Address, Address, Contact>(
"SELECT Name, HomeHouseNumber as HouseNumber, HomePostcode as Postcode, WorkHouseNumber, WorkPostcode FROM Contacts",
(contact, home, work) =>
{
contact.HomeAddress = home;
contact.WorkAddress = work;
return contact;
},
splitOn: "HouseNumber,WorkHouseNumber");
}
但是我不能别名以这样的方式工作地址栏他们将被映射。 Dapper可以为我执行这个映射吗?还是我必须手动执行这个映射?