11

これまで使用したことのない Dapper ORM を使用するよう指示した顧客がいます。ネストされたオブジェクトに問題があります。値オブジェクト クラス (Address) が埋め込まれたメイン クラス (Location) があります。2 つのクラスは次のようになります。

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を理解していません。

4

1 に答える 1

11

ダッパークエリで「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 が必要です。

于 2012-06-08T05:48:06.780 に答える