2012-02-25 17 views
6

BookId, AuthorId gibi kimlik sütunlarına sahip bir veritabanım var. Kod dosyalarım ancak bir Id özelliği var. Ben NHIbernate Dapper ile kullandığınız programın bölümlerini dönüştürmek için çalışıyorum, bu yüzden hem bir kimlik hem de bir BookId özelliği için gereksinimi ortadan kaldırmaya çalışıyorum. NHibernate, BookId'yi Kitap nesnelerinin Id özelliğine ve benzer şekilde Author nesnesindeki Id özelliğine AuthorId eşleştiren yerleşik bir kimlik haritasına sahiptir.Dapper ile farklı bir ada sahip bir kimlik sütunu nasıl eşlenir?

Bu Dapper'ı, sql sorgusunda sütuna bir takma ad vermek dışında yapmanın bir yolu var mı?

public class Book { 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

public class Author { 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

ben gibi görünüyor kullanıyorum bir örnek sorgu: Zarif kolayca bu desteklemiyorsa

select * from Books b inner join Author a on a.AuthorId = b.AuthorId 

, herhangi bir düşünce başka hangi seçenekler üzerinde ben var?

+0

Bunu sütun için bir diğer ad kullanarak yaptım. Neden bir takma ad kullanmak istemiyorsunuz? – LordHits

+0

@LordHits Bunu önlemek için çalışıyorum çünkü döndüğüm çok sayıda sütun var. Her birini açıkça sql olarak yazmamayı tercih ederim. Ayrıca, tablo birleştirme ile beklendiği gibi çalışacağına inanmıyorum –

cevap

15

Tasarım gereği, dapper bir harita katmanına sahip değildir. Bu yoldan bir adım önce ve aniden ne olduğunu anlayabilmemizden önce, yapılandırma dosyalarında boğuluyor olacağız. Yani: İki seçenek:

  • SQL
  • bir takma ad ekleyin böylece ya (SQL)

C# içinde bir dolgu ekleyin:

select BookId as [Id], Name from Books 

veya (C#):

private int BookId { get { return Id; } set { Id = value; } } // just for dapper 
İlgili konular