Вложенные объекты ORAP Dapper

У меня есть клиент, который продиктовал, что я использую Dapper ORM, который я никогда раньше не использовал. У меня проблема с вложенными объектами. У меня есть основной класс (Location), который имеет класс объектов встроенного значения (Address). Эти два класса выглядят следующим образом:

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, чтобы получить правильную структуру.

Ответ 1

Вы можете использовать параметр splitOn в своем запросе 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 требуется, если ваши объекты в наборе записей не разделяются столбцом с именем "Id".