2012-10-07 13 views
7

Durum çerçevemi 4.3 veritabanı ilk projesini yeni varlık çerçevesine yükselttim. Görünüşe göre şimdi ObjectContext yerine DbContext kullanıyorum. Entity Framework 5'teki LoadProperty

Eski .edmx dosyamı yenisiyle değiştirdim. LoadProperty DBContext kullanılabilir bir yöntem olmadığı görünüyor

using (var context = new MyEntities()) 
{ 
    Models.User user = context.Users.First(x => x.GUID == guid); 
    context.LoadProperty(user, o => o.Settings); 
    return user; 
} 

: Daha önce benim 4.3 .edmx dosyasını kullanıyordu Benim eski iş kodu, şimdi kod LoadProperty yöntemini kullanarak bir sorunu var.

Zaten güçlü yazılan yüklemeleri nasıl alabilirim?

ben

context.Users.Include("Settings") 

kullanabilirsiniz varsayalım ama bu güçlü yazılan ve yazım hataları eğilimli değildir.

+1

You: Burada

context.Users.Include(u => u.Settings); 

Dahil uzatma yöntemi hakkında bazı bilgiler verilmiştir ...

using System.Data.Entity; 

: Bu içer çünkü DbExtension sınıfından geliyor, using ifadesini unutma Eğer ObjectContext kullandıysanız EF4.3 kullanmıyordu - EF4.3 temelde tümüyle DbContext hakkında ... Eğer tembel yükleme etkinse, sadece açıkça yüklemeniz gerekmeden .Settings özelliğini kullanabilirsiniz. Bir veritabanına bir gezi tetikleyebilir unutmayın, bu yüzden sık sık yapıyorsanız, aşağıda işaretli .Include() kullanmak daha ucuz olabilir. – Pawel

+0

@Pawel: Üzgünüm. Güncellemeden sonra karşılaştığım başka bir sorun hakkında bir soru okudum ve durumumu daha iyi tanımlamak için "dikkatle" yazdı. Bu cezayı çarptım. – citronas

cevap

15

Dahil etme yöntemini Lambda ile de kullanabilirsiniz. msdn info

+0

Harika! Tam olarak aradığım şey! Umarım cevabın aynı sorunu olan başkalarına yardım edeceğini umarım – citronas

+0

Epic Extension söylemeliyim. Çok yazıldığından beri harika. –