我將很快開始編寫新的Web應用程序。應用程序將使用ASP.Net MVC 3和Entity Framework 4.1(數據庫優先方法)構建。我將使用ADO.NET POCO實體生成器創建POCO類,而不是使用默認的EntityObject類。實體框架POCO序列化
當我使用此工具創建POCO時,它會自動將Virtual關鍵字添加到所有屬性中,以便進行延遲加載的更改跟蹤和導航屬性。我曾閱讀並從演示中看到,Julie Lerman(EF Guru!)似乎關閉延遲加載並修改她的POCO模板,以便從她的POCO類中刪除Virtual關鍵字。 Julie說明了她這樣做的原因是因爲她正在編寫WCF服務的應用程序,並使用Virtual關鍵字導致序列化問題。她說,當一個對象被序列化時,序列化程序正在觸摸導航屬性,然後觸發延遲加載,並且在您知道它之前,您將通過導線拉動整個數據庫。
我覺得朱莉可能會說她可以把整個數據庫拉過來,但即使如此,這個想法讓我感到害怕!我的問題是(最後),我是否也應該爲我的MVC應用程序從我的POCO類中刪除Virtual關鍵字,並使用DectectChanges來處理我的更改跟蹤,並使用Eager Loading來請求導航屬性。
您的幫助將不勝感激。
非常感謝。