繁体   English   中英

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

[英]Dapper: how to map columns from table in internal class models?

我有包含字段的 sql 表 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 的 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作为虚拟列。 如果你不提供,你当前的类结构会出错(没有非复杂类型的属性)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM