Dapper.NET 简单的多表映射
示例
假设我们有一个查询,查询剩余的需要填充Person类的骑兵。
public class Person
{
public string Name { get; set; }
public int Born { get; set; }
public Country Residience { get; set; }
}
public class Country
{
public string Residence { get; set; }
}我们可以使用重载(使用可以用来组成返回的实例)的重载Query<>,用Country的实例填充person类以及Residence属性Func<>。在Func<>可能需要长达7种输入类型与最终的一般的参数始终是返回类型。
var sql = @"SELECT 'Daniel Dennett' AS Name, 1942 AS Born, 'United States of America' AS Residence
UNION ALL SELECT 'Sam Harris' AS Name, 1967 AS Born, 'United States of America' AS Residence
UNION ALL SELECT 'Richard Dawkins' AS Name, 1941 AS Born, 'United Kingdom' AS Residence";
var result = connection.Query<Person, Country, Person>(sql, (person, country) => {
if(country == null)
{
country = new Country { Residence = "" };
}
person.Residience= country;
return person;
},
splitOn: "Residence");注意使用splitOn:"Residence"参数,该参数是要填充的下一个类类型的第一列(在本例中为Country)。Dapper会自动寻找一个称为Id的列进行拆分,但是如果找不到并splitOn没有提供,System.ArgumentException则会抛出一条有用的消息。因此,尽管它是可选的,但通常必须提供一个splitOn值。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短