我曾经使用DbContext
用于我的所有数据库模型,直到我阅读Ways to optimize Entity Framework,在执行了我发现自己被迫切换到ObjectContext
的步骤后,所以,那里,那里有很多代码需要改变,但我不确定我做了正确的事情,特别是在谷歌搜索后,我注意到DbContext
比ObjectContext
更新,更好,而且我也是注意到我在转换到ObjectContext
时失去了很多东西,比如“迁移”和“查找”方法等等......
那么,改变我的代码以使用ObjectContext
代替DbContext
以通过预生成视图来提高速度是正确的吗?或者我做错了什么?
答案 0 :(得分:2)
您不必切换到ObjectContext来获取预先生成的视图。我创建了T4模板,用于为CodeFirst生成预生成的视图。看看这里:Entity Framework initialization is SLOW -- what can I do to bootstrap it faster? Visual Studio Gallerry上提供了T4模板。以下是我的博文中link描述如何获取和使用它们
答案 1 :(得分:1)
我建议您使用DbContext,因为它是ObjectContext的简化版本。如果DbContext不够,可以从DbContext访问包装的ObjectContext:
((IObjectContextAdapter)dbContext).ObjectContext
“生成视图”选项也可用于EF Power Tools中的Code First(DbContext)。右键单击从DbContext派生的文件,然后选择“Entity Framework”=> “生成视图”。有关详细信息,请参阅Generating Pre-compiled Views