Bilmek istediğin her şeye ulaş

Linq to Sql deki LoadWith() ve AssociateWith() arasındaki farklar nelerdir?

LINQ to SQL'de LoadWith() bir tablo ile bağlı bir diğer tablonun koşulsuz birlikte hazır hale getirilmesini sağlar. Örnek verecek olursak;


DataLoadOptions dlo = new DataLoadOptions();
db.LoadOptions = dlo;
dlo.LoadWith<Customer>(c => c.Orders);


Örnekte betimlenen durum veritabanında bulunan Customer record'larını bağlı olan Order recordlar ile beraber yüklenmesini sağlar. Ancak, burada Customer'ın tüm Order'ları yüklenir.

AssociateWith() için ise durum biraz daha farklıdır. Bir tablo ve bu tablodaki veriye bağlı bulunan başka tablodaki verilerin koşullu olarak yüklenmesini, yani filtrelenerek yüklenmesini sağlar. Örnek verecek olursak;


DataLoadOptions dlo = new DataLoadOptions();
dlo.AssociateWith<Customer>(c => c.Orders.Where(p => p.ShippedDate != DateTime.Today));
db.LoadOptions = dlo;


Örnekte betimlenen durum; Customer'ların Order'ları ile birlikte yüklenmesini açıklamaktadır, ancak tüm Order'lar değil, ShippedDate'i Today olmayan kayıtlar istenmektedir.

LoadWith ve AssociateWith fonksiyonları bize LINQ to SQL sorgusunu daha esnek olarak kullanabilme imkanı sağlar.

  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

603 Görüntülenme5 Takipçi1 Yanıt