Dapper ORM 嵌套对象

本文关键字:对象 嵌套 ORM Dapper | 更新日期: 2023-09-27 18:36:18

我有一个客户要求我使用Dapper ORM,这是我以前从未使用过的。我对嵌套对象有问题。我有一个主类(位置),它有一个嵌入的值对象类(地址)。这两个类如下所示:

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 来获得正确的结构。

Dapper ORM 嵌套对象

您可以在 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。