我正在使用延迟加载和预生成的视图。 我创建了上下文。 我得到所有关于6000 +导航的对象就像3秒一样填充。没关系。 我第一次更新所有物体(4分钟......) 我第二次更新所有物体(6秒)
我怀疑在后台运行延迟加载并且更新必须做一些让他重新启动或EF启动仍在加载的东西..
我在EF 6.1上,数据是分层的。
30个桌子上的数据库大小约为6000个。
EF模型是DatabaseFirst。
任何解决方法?
答案 0 :(得分:0)
如果您关注的是两次更新之间的时差,我怀疑第二次更新运行得更快,因为修改了更少的对象。
答案 1 :(得分:0)
为什么需要加载到上下文中的所有对象?您的上下文的生命周期是什么?
一般建议您创建单一使用上下文 - 对于单个Web请求或单个Windows窗体。
您将进一步看到很多使用using语句的示例,其中上下文的生命周期非常短。让上下文过长会增加内存使用量并增加并发问题的可能性。您的数据库和其他层也可以自己进行缓存。
最后,懒惰加载很好,只要你不知道你是否需要东西。如果您知道自己需要相关记录,并且希望避免多次往返,则可以考虑明确加载数据。