Objets imbriqués ORM Dapper

dapper orm

Question

J'ai un client qui a dicté que j'utilise Dapper ORM, que je n'ai jamais utilisé auparavant. J'ai un problème avec des objets imbriqués. J'ai une classe principale (Location) qui possède une classe d'objets de valeur intégrée (Address). Les deux classes ressemblent à ceci:

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

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

Le SQL:

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

J'ai examiné un certain nombre d'exemples, mais je ne peux tout simplement pas configurer la requête correctement. Je ne comprends pas assez Dapper pour que la structure soit correcte.

Réponse acceptée

Vous pouvez utiliser le paramètre "splitOn" dans votre requête dapper.

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 est requis si vos objets dans le jeu d'enregistrements ne sont pas "divisés" par une colonne nommée "Id".




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi