1

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

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

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

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

4

1 回答 1

2

很可能 EF 只是跟踪更改,并且因为您的实体没有跟踪实体,所以 ef 花时间搜索依赖实体。

我的第一个尝试是尝试使您的实体“更改跟踪实体”,您可以通过使所有属性虚拟化来实现,而不仅仅是导航属性。

于 2013-05-16T17:37:28.737 回答