2012-06-05 62 views
10

我有一位客戶已經決定使用我以前從未使用過的Dapper ORM。我有一個嵌套對象的問題。我有一個主類(位置),它有一個嵌入式值對象類(地址)。這兩個類是這樣的: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足以讓結構正確。

回答

9

您可以在精巧查詢中使用「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。