许多类似的问题,但找不到我想要的答案。我正在尝试在线导入数百万个数据,并且每行都有关于几个EF Core实体的信息(一个主要的实体有50个字段,而3个相关的实体有几个字段) 我有大量重复项,这意味着我需要始终在插入之前检查数据是否在这里或获取FK /导航属性。
这很慢。我每分钟处理大约1000条线。我已经做了以下几件事,但是还有其他明显的事情可以做吗?
db.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
我有一个缓存字典字典,其中有一个小表,列出了我的全部50个用户,以避免在每一行查询数据库以获得用户导航属性。
在VS之外的发行版可执行文件中运行可以稍微改善性能。