Dapper ORM 嵌套对象

11

我有一个客户,他要求我使用 Dapper ORM,而我以前从未使用过。我在嵌套对象上遇到了问题。我有一个主类(Location),其中包含一个嵌入式值对象类(Address)。这两个类看起来像这样:

class Location {
    int Id;
    string LocationName;
    Address LocationAddress;
}

Class Address {
    string Street;
    string City;
    string State;
    string ZipCode;
}

SQL查询语句:

SELECT Id, LocationName, Street, City, State, ZipCode FROM Locations

我看了很多例子,但我就是无法正确设置查询。我对Dapper的理解不够,无法得到正确的结构。

1个回答

11

你可以在dapper查询中使用"splitOn"参数。

var sql = "SELECT Id, LocationName, Street, City, State, ZipCode FROM Locations";
var conn = // your get connection logic here. 

using(conn)
{
 conn.Open();
 var locations = conn.Query<Location,Address,Location>(sql, (location, address) => 
                 {
                   location.LocationAddress = address;
                   return location;
                 }, splitOn: "Street");
}

如果记录集中的对象没有名为"Id"的列进行分割,则需要使用SplitOn。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接