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);
}
Sonuçlar:Dapper'da çoklu eşleme desteği için sütunlar nasıl adlandırılır? içinde
'First (#1) in (#0)'
'Second (#2) in (#0)'
Kategori Kimliği ve CategoryName aşağıdaki
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 }
});
Sonuçlar beri değerlere sahiptir
: Ben eğer MySQL veritabanına bağlıyorum
'First (#1) in My Category (#10)'
'Second (#2) in My Category (#10)'
onunla bir ilgisi var.
Burada spliton kullanıyorsunuz, google kodunda izleyiciye bozuk bir test göndermeyi düşünüyor musunuz? –
@Sam Tahmin ediyorum, '' CategoryName '' '' '' '' '' '' '' '' '' '' değiştirmiş olsaydım çalışmalıydım. Dapper'ın '' CategoryName '' (aynı zamanda 'Category.Name' 'i denen)' 'x.Category.Name' ' – loraderon
' 'ile eşlemek için bazı automapper kurallarını kullanacağı izlenimi uyandırıyordum. Kategorinin tüm bölümlerine ... aslında sonuç kümesindeki çift sütun adlarını işlemek daha basit. o zaman sen-ebilmek yapmak gibi şeyler * Gönderen Gönderiler p katılmak Yazarlar a p.AuthorId = a.Id' çok özlü olan –