Diyelim ki tüm müşterilerinizin bir listesini almak istiyorsunuz:
var customers = context.Customers.ToList();
Ve birbirlerinin varsayalım Customernesne onun kümesine bir referansı vardır Ordersve her birinin Orderreferansları sahiptir LineItemski 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;