2014-09-08 49 views
9

LazyLoadingEnabled:EF 6.1 ProxyCreationEnabled arasındaki fark ve aşağıdaki iki parametre yapılandırabilirsiniz sizin DBContext olarak

context.Configuration.ProxyCreationEnabled = true; 
context.Configuration.LazyLoadingEnabled = true; 

Benim anlayış bu size varlıklar için vekiller oluşturmak mümkün olmak zorunda tembel yükleme sağlamaktır. Diğer bir deyişle, her iki parametrenin de tembel yükleme sağlamak için doğru olarak ayarlanması gerekir.

1. Neden her iki parametre de var ve neden her iki parametreyi de yapılandırabilirsiniz? 2. Aşağıdaki konfigürasyonların etkisi ne olur?

// Can't create proxies but can lazy load 
context.Configuration.ProxyCreationEnabled = false; 
context.Configuration.LazyLoadingEnabled = true; 

// Can create proxies but can't lazy load 
context.Configuration.ProxyCreationEnabled = true; 
context.Configuration.LazyLoadingEnabled = false; 
+0

olan http://stackoverflow.com/questions/4596371/what-are-the-downsides-to-turning-off-proxycreationenabled-for-ctp5-of- Cevap ef-code-f? – tschmit007

cevap

7

AFAIK:

  • vekil oluşturma gerçek ve tembel yükleme gerçek =>
    • değişiklik izleme
    • geç yükleme
  • vekil oluşturma gerçek ve tembel yükleme yanlış =>
    • değişiklik izleme
  • vekil oluşturma yanlış ve tembel yükleme gerçek =>
    • ...
  • (Diğerleri arasında)

referans: msdn

+0

Cevabınız için teşekkür ederiz. Proxy'ler değişim izlemenin çalışma şeklini nasıl değiştirir? Hiçbir proxy olmadan –

+2

, izleme yok. Yani context.SaveChanges() 'hiçbir zaman bir şey yapmaz. – tschmit007

+0

Değişim izlemenin proxy ile hiçbir ilgisi olmadığını düşünüyorum, temelde her ikisi de tembel yükleme işlemini etkinleştirmek için birlikte kullanıldıkları sürece, proxy'nin yalnızca herhangi bir yararı olmadığından emin olmanıza izin vermez. Sadece denedim, '(1) 'bulmak, pervane değiştirmek, daha sonra' SaveChanges', değişiklikleri kaydetmek –

İlgili konular