Dapper:如何在内部 class 模型中映射来自 table 的列?
Dapper: how to map columns from table in internal class models?
我有 sql table tbl_persons 字段:first_name、last_name、first_name_eng、last_name_eng .
还有一个模特:
public class PersonName
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Person
{
public PersonName Name { get;set; }
public PersonName NameEng { get;set; }
}
如何将 tbl_persons 中的行映射到 Person 对象?
您可以使用 Dapper 的多重映射API
这应该没问题。
var result = new List<Person>();
var q = "SELECT null as S, first_name as FirstName,
last_name AS LastName,first_name_eng AS FirstName,
last_name_eng AS LastName FROM tbl_persons";
using (var con = new SqlConnection("YourConnStringHere")
{
result = con.Query<Person, PersonName,PersonName, Person>(q, (p,n,ne) =>
{ p.Name = n; p.NameEng =ne; return p; },
splitOn: "FirstName,FirstName").ToList();
}
注意:您需要 null as S
作为虚拟列,即使您没有在 class 中使用它。如果您不提供,您当前的 class 结构会出错(没有非复杂类型属性)
我有 sql table tbl_persons 字段:first_name、last_name、first_name_eng、last_name_eng .
还有一个模特:
public class PersonName
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Person
{
public PersonName Name { get;set; }
public PersonName NameEng { get;set; }
}
如何将 tbl_persons 中的行映射到 Person 对象?
您可以使用 Dapper 的多重映射API
这应该没问题。
var result = new List<Person>();
var q = "SELECT null as S, first_name as FirstName,
last_name AS LastName,first_name_eng AS FirstName,
last_name_eng AS LastName FROM tbl_persons";
using (var con = new SqlConnection("YourConnStringHere")
{
result = con.Query<Person, PersonName,PersonName, Person>(q, (p,n,ne) =>
{ p.Name = n; p.NameEng =ne; return p; },
splitOn: "FirstName,FirstName").ToList();
}
注意:您需要 null as S
作为虚拟列,即使您没有在 class 中使用它。如果您不提供,您当前的 class 结构会出错(没有非复杂类型属性)