2012-10-09 29 views
5

我知道Entity Framework中的導航屬性必須在它們前面有virtual關鍵字,否則EF無法做到它的導航屬性魔術。但是,將虛擬關鍵字放在其他屬性的前面會有什麼影響?我最近看到一個例子,其中實體的每個屬性都使用virtual關鍵字聲明。如果我這樣做,EF 5真的懶得加載每個屬性,還是我錯過了一些關於它的工作方式?虛擬關鍵字對實體框架5中的實體屬性有什麼影響?

回答

2

使用虛擬關鍵字導航屬性是延遲加載所必需的。對所有映射的屬性使用虛擬關鍵字對於動態更改跟蹤是必需的。所有要求這兩個選項都是described in documentation

在EF 4.0動態變化跟蹤是推薦的方法,因爲POCO T4 Generator使用虛擬屬性,但自EF 4.1 snapshot change tracking is recommended as initial option轉移到動態變化跟蹤只有當shapshot變化跟蹤是性能問題的犧牲品。