Diyelim ki tüm müşterilerinizin bir listesini almak istiyorsunuz:
var customers = context.Customers.ToList();
Ve birbirlerinin varsayalım Customer
nesne onun kümesine bir referansı vardır Orders
ve her birinin Order
referansları sahiptir LineItems
ki aynı zamanda bir referans verebilir Product
.
Gördüğünüz gibi, birçok ilgili varlığa sahip üst düzey bir nesnenin seçilmesi, birçok kaynaktan veri çekmesi gereken bir sorguya neden olabilir. Bir performans ölçüsü Include()
olarak, aynı sorgunun bir parçası olarak hangi ilgili varlıkların veritabanından okunması gerektiğini belirtmenize olanak tanır.
Aynı örneği kullanarak, bu, ilgili tüm sipariş başlıklarını getirebilir, ancak diğer kayıtların hiçbirini getirmeyebilir:
var customersWithOrderDetail = context.Customers.Include("Orders").ToList();
SQL'i istemenizden sonraki son nokta olarak, ilk ifade olmadan Include()
basit bir ifade oluşturabilir:
SELECT * FROM Customers;
Çağıran son ifade Include("Orders")
şöyle görünebilir:
SELECT *
FROM Customers JOIN Orders ON Customers.Id = Orders.CustomerId;