如何在内部类模型中映射表中的列

本文关键字:映射 模型 内部类 | 更新日期: 2023-09-27 18:09:00

我有sql表tbl_persons与字段:first_name, last_name, first_name_eng, last_name_eng.

And a Model:

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的Multi-Mapping 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作为虚拟列,即使您不在您的类中使用它。如果您不提供,您将得到当前类结构(没有非复杂类型属性)的错误