2011-05-10 26 views
9

için istekli-yükleme zorlama ve ben her görüşmeden yüklü istekli istediğiniz bir navigasyon özelliği denilen Kategori vardır:Ben EF Kod Önce kullanıyorum gezinti özelliği

public class Product 
{ 
    ... 
    public Category Category { get; set; } 
} 

bunu eklemek zorunda Bunu yapmak için her çağrıda ben Hasıla yapacağım

var results = from p in db.Products.Include("Category") select p; 

bunu her zaman dahil etmek zorunda kalmadan her çağrıda SQL katılmak Kategori mülkiyet istekli yüklü, bu nedenle nesli, sahip olmak bir yolu var mı?

Eğer

+0

Tüm içerik veya yalnızca bu belirli varlıklar için tembel yükleme özelliğini devre dışı bırakmak istiyor musunuz? –

cevap

1

@jeroenh tarafından önerilen şekilde yardımcı yöntem kullanabilirsiniz, ancak sol Örneğin, sipariş ettiğiniz tüm ürünler ve kategorileri ile sipariş vermek istediğiniz durumlar. EF, Linq-to-sql'de olduğu gibi herhangi bir otomatik istekli yükleme yapılandırmasına sahip değildir. Her zaman Include'u kullanmalısınız (doğrudan veya bazı yardımcı yapımları ile).

3

basit bir yol olsa çok fayda getirir eğer

var results = from p in db.ProductsWithCategories() select p; 

emin değil kullanmasına olanak veren bir uzantı yöntemini

static class DbExtensions{ 
    public IQueryable<Product> ProductsWithCategories(this MyContext db) { 
     return db.Products.Include("Category"); 
    } 
} 

tanımlamak olacaktır teşekkür ...

+0

Bu konuda olsa da, akıcı API'nin veri ek açıklamalarıyla standart bir yol olup olmadığını merak ettim. –

İlgili konular