性能实体框架6启动和更新

时间:2014-06-12 19:32:28

标签: entity-framework lazy-loading entity-framework-6

我正在使用延迟加载和预生成的视图。 我创建了上下文。 我得到所有关于6000 +导航的对象就像3秒一样填充。没关系。 我第一次更新所有物体(4分钟......) 我第二次更新所有物体(6秒)

我怀疑在后台运行延迟加载并且更新必须做一些让他重新启动或EF启动仍在加载的东西..

我在EF 6.1上,数据是分层的。

30个桌子上的数据库大小约为6000个。

EF模型是DatabaseFirst。

任何解决方法?

2 个答案:

答案 0 :(得分:0)

如果您关注的是两次更新之间的时差,我怀疑第二次更新运行得更快,因为修改了更少的对象。

答案 1 :(得分:0)

为什么需要加载到上下文中的所有对象?您的上下文的生命周期是什么?

一般建议您创建单一使用上下文 - 对于单个Web请求或单个Windows窗体。

您将进一步看到很多使用using语句的示例,其中上下文的生命周期非常短。让上下文过长会增加内存使用量并增加并发问题的可能性。您的数据库和其他层也可以自己进行缓存。

最后,懒惰加载很好,只要你不知道你是否需要东西。如果您知道自己需要相关记录,并且希望避免多次往返,则可以考虑明确加载数据。

http://msdn.microsoft.com/en-us/data/jj574232.aspx