0

我们的应用程序使用基于实体框架 5.0 的代码优先数据库。该模型包含大约 100 种类型,它们映射到大约 70 个表,总共有几千条记录。我们需要在应用程序启动时加载大部分数据。为此,我们只需调用Dbset<>.Load()加载所有记录。

加载时间似乎很长,这导致我们进行了一些改进,例如预生成的视图、联合类​​型和删除冗余。

在上面之后,我们使用了一个分析器来检查所有时间都浪费在了哪里,发现只有不到 10% 的加载时间用于 SQL,而大约 70% 用于Activator.CreateInstance()(这种使用是可以理解的,因为 Entity Framework 没有“知道”我们的实体类型)。

然后我们尝试使用Include()仅加载所需的数据,但是,这增加了加载时间(从我读到的内容,因为.Include()对 1-2 个属性有好处),显然不符合我们的目的。

这是实体框架的限制还是有其他方法可以提高性能?

4

0 回答 0