我们有一个很大的会计项目,包含300多个表。
然后,我们有不同的模块 - 财务,Checkroll等。
目前,每个模块都在加载一个包含所有这些表的巨型Edmx实体。它非常笨重,只是为了在Edmx中添加一列而加载了很长时间。
所以,我建议将实体分开。理想情况下,每个模块应仅包含属于他的表。希望有了这个,它可以最大限度地减少服务器上的内存使用量。
然后,正如预期的那样,有些人拒绝这些想法。他们声称Linq的工作方式类似于lazyload,并没有太多帮助(减少服务器负载/减少内存消耗) - "如果你不在linq查询中使用该表,它会赢得&消耗额外的内存。"
我想证明该陈述是否有效。你的练习通常如何?
答案 0 :(得分:3)
为了最大限度地减少内存消耗,请使用较小的DbContexts,并使用gcServer设置(如果您运行控制台应用程序或Windows Servce) - 您还可以执行其他操作,请参阅MSDN白皮书Performance Considerations for EF 4, 5, and 6。< / p>