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值。
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短