我想我必須在這裏丟失真正明顯的東西。我使用Visual Studio 2012,並將.Net 4.5作爲項目框架。我首先使用datbase從我的數據庫中生成模型(從數據庫更新模型,選擇表格)。我嘗試過使用默認的實體生成器,並通過顯式選擇EF5.x DBContext生成器,並且確保在設計時和運行時的上下文配置中在模型屬性上啓用了lazyloading。儘管如此,我的房產拒絕延遲加載。延遲加載不能與使用EF5.x生成的實體一起工作DBContext生成器
我設置了一個基本的例子。表A與表B有一對多的關係。模型生成的代碼包含實體A中的可重寫/虛擬ICollection屬性,用於此關係。然後我做一個Find()來加載一個實體A,並且訪問這個關係(比如objA.EntityBList.Count()),但是這個集合總是空的。如果我加載entityB它的entityA屬性總是沒有。
這應該是這樣的工作嗎?以前我主要使用ObjectContext,所以這對我來說有點新鮮。
在進一步的測試中,似乎我的簡單示例確實有效,所以問題似乎與特定的edmx文件有關。所以這個問題變成了爲什麼一個edmx文件不會生成支持延遲加載的模型?我可以看到,各種物化方法正在生成POCO對象,而不是代理,這解釋了爲什麼懶加載不起作用,但爲什麼我不能獲得代理。該配置表明代理已啓用。