2012-06-05 14 views
10

Ho un cliente che ha dettato che io uso Dapper ORM, che non ho mai usato prima. Ho un problema con oggetti nidificati. Ho una classe principale (Location) che ha una classe di oggetti valore incorporato (Address). Le due classi di simile a questa:Dapper ORM oggetti nidificati

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

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

Lo SQL:

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

ho un'occhiata a una serie di esempi, ma io proprio non riesco a query istituito destra. Non capisco abbastanza Dapper per avere la struttura giusta.

risposta

9

È possibile utilizzare il parametro "splitOn" nella query avanzata.

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"); 
} 

SplitOn è necessaria se gli oggetti nel set di record non sono "split" da una colonna denominata "ID".

Problemi correlati