实体框架 - 添加的密集CPU负载

时间:2013-05-16 17:33:34

标签: performance entity-framework entity-framework-4 entity-framework-5

我有一个小项目,大约有20个表,其中行条目的内容大小很小,但表之间有很多关系。

我首先使用代码,并将所有导航属性设置为虚拟。

今天我注意到,当我使用Add方法向DbSet添加实体,并且实体有大约6-7个外键时,仅向DbContext添加大约2000个实体(不执行SaveChanges)大约需要30秒,CPU是坚持100%。

当实体有太多虚拟导航属性时,是否存在已知性能损失?

1 个答案:

答案 0 :(得分:2)

EF很可能只跟踪更改,因为您的实体不跟踪实体,ef会花时间搜索依赖实体。

我的第一次尝试是尝试让您的实体“更改跟踪实体”,您可以通过将所有属性设置为虚拟,而不仅仅是导航属性。