1

我有一个简单的console app用. 我正在使用一个简单的数据库(模型优先)。我有两个表,CustomerEmail。每个电子邮件记录都有对客户记录的引用。C#VS.NET 2012Entity Framework 5

我创建了客户和电子邮件对象,将它们保存到EF上下文中的集合中,在创建了 1000 条记录后,我在上下文中调用了保存更改。1000 的批次变得越来越慢,从 1 分钟开始 1000,然后到第 9000 条记录,1000 的批次需要 4 分钟才能完成。

CSV一次一行地从文件中读取数据,对每一行进行简单的拆分,然后构造简单的对象。

我的问题是这是否是EF5,或者我是否index在数据库中缺少一个?我没有做其他预处理。我正在使用SQL Server 1012.

4

2 回答 2

2

DbContext跟踪所有对象,即使它们已保存。的大小DbContext可能是导致您的应用程序变慢的原因。

我建议在 1000 次插入后处理DbContext并创建一个新的。DbContext

于 2012-11-16T10:05:37.940 回答
0

您可以使用此禁用对象的跟踪

context.Configuration.AutoDetectChangesEnabled = false;
于 2012-11-16T12:56:51.193 回答