Как назвать столбцы для поддержки нескольких отображений в Dapper?

var sql = @"SELECT
    a.id AS `Id`, 
    a.thing AS `Name`, 
    b.id AS `CategoryId`,
    b.something AS `CategoryName`  
FROM ..";

var products = connection.Query<Product, Category, Product>(sql,
    (product, category) =>
    {
        product.Category = category;
        return product;
    }, 
    splitOn: "CategoryId");

foreach(var p in products)
{
    System.Diagnostics.Debug.WriteLine("{0} (#{1}) in {2} (#{3})", p.Name, p.Id, p.Category.Name, p.Category.Id);
}

Результатов в:

'First (#1) in  (#0)'
'Second (#2) in  (#0)'

CategoryId и CategoryName имеют значения, начиная со следующих

var products = connection.Query(sql).Select<dynamic, Product>(x => new Product
{
    Id = x.Id,
    Name = x.Name,
    Category = new Category { Id = x.CategoryId, Name = x.CategoryName }
});

Результатов в:

'First (#1) in My Category (#10)'
'Second (#2) in My Category (#10)'

Я подключаюсь к базе данных MySQL, если это имеет к ней какое-либо отношение.

8
задан loraderon 19 May 2011 в 09:48
поделиться