Bilmek istediğin her şeye ulaş

Linq to Sql kullanarak join işlemi nasıl yapılır?

Elimde 2 tablo var. product ve version. product tablosunda ürünün yayındaki bilgilerini versiyon tablosunda ise yapılan değişiklikleri tutuyorum. daha sonra bu değişikliklere onay vererek product tablosuna yansıtıyorum. haliyle birden fazla versiyon oluşuyor. yapmak istediğim şu ki product tablosu ile versiyon tablosunu join yapacam ama her productı son versiyonu ile. yoksa kayıt çokluyor. acaba nasıl yapabilirimDüzenle

Aslında bunun için Join Statement yazmana gerek yok, LINQ bunu senin için SQL'e dönüştürürken yapıyor zaten:


//Products ve Versions tabloların olduğunu 
//ve bunların birbirine bağlı olduğunu varsayıyorum.

var results = from p in db.Products
where p.ProductId == 3
select new
{
Product = p,
VersionItems = p.Versions
};

Bu sorgu sonucunda, results içinde bir döngü ile dönerseniz her row için bir product ve bu product'ın versiyonlarının bilgisini taşıyan VersionItems property'sini görebilirsiniz.


NOT: LINQ sorgularında bağlı tablolardan veri çekerken Lazy Loading ve Eager Loading kavramlarına dikkat ediniz.


101 LINQ Samples belki size LINQ sorgularının yapısı konusunda bir fikir verebilir:


code.msdn.microsoft.com/101-lınq-samples-3fb9811b


Güncelleme:

Yukarıdaki sorguda, içerdeki VersionItems içine de where ekleyebilirsin:


var results = from p in db.Products
where p.ProductId == 3
select new
{
Product = p,
VersionItems = p.Versions.Where(x => x.VersionId > 3)
};


  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

743 Görüntülenme2 Takipçi1 Yanıt

Eş Anlamlı Soru Ekle

  • LINQ ile Join nasıl yapılır?

  • LINQ Join nasıl yapılır?