实体框架是否已编程,因此当您有许多实体类型时它很慢?

时间:2016-07-14 08:48:48

标签: c# entity-framework

我的模型大约有500种实体类型。现在我已经添加了大约2500个实体类型以供将来使用。因此,现在我有大约3000个实体类型。

此时我的程序与情况相同,我只有500个实体。我的程序只是构建实体图,即实例化大量实体并通过引用连接它们。

不幸的是,即使我没有处理新实体类型的实例,我的程序也需要大约20倍的时间来运行,因为我添加了新的实体类型。

是否正确,实体框架中存在大量开销,并且它在模型中的实体数量方面显着增长,即使大多数模型在DbContext的生命周期内不会被使用?

2 个答案:

答案 0 :(得分:1)

EF在启动时(需要相当长的时间)在定义的所有实体上进行大量的反射工作,无论它们是否实际使用。因此,如果您看到启动(更长),那么它在某种程度上是正常的。

如果您在下一次查询和操作中遇到此延迟,那么您可能还有另一个问题,您需要提供解决方案的更多信息。

答案 1 :(得分:0)

您可以尝试生成' EF视图'在编译时,而不是运行时。

(不完全确定它是什么,但这是EF在启动时所做的事情)

请参阅here

  

生成视图 - 生成EF运行时使用的预编译视图,以提高启动性能。