2012-06-05 23 views
10

私はDapper ORMを使用するように指示した顧客があります。ネストされたオブジェクトに問題があります。私は、埋め込まれた値のオブジェクトクラス(アドレス)を持っているメインクラス(場所)を持っています。 2つのクラスは次のようになります。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が必要です。

関連する問題