我在console app
中使用C#
编写了一个简单的VS.NET 2012
。我正在使用一个带Entity Framework 5
的简单数据库(模型优先)。我有两个表,客户和电子邮件。每封电子邮件记录都有对客户记录的引用。
我创建了客户和电子邮件对象,将它们保存到EF
上下文中的集合,并且在创建了1000条记录之后,我在上下文中调用了保存更改。 1000批次变得越来越慢,从1分钟开始1000,然后到第9000条记录,1000批次需要4分钟才能完成。
我一次从一行CSV
文件中读取数据,在每一行上进行简单拆分,然后构建简单对象。
我的问题是这是EF5
,还是我在数据库中缺少index
?我没有做其他的预处理。我正在使用SQL Server 1012
。
答案 0 :(得分:2)
您的DbContext
跟踪所有对象,即使它们已保存。 DbContext
的大小可能是导致应用程序变慢的原因。
我建议在1000次插入后处置DbContext
并创建新的DbContext
。
答案 1 :(得分:0)
您可以使用此
禁用对象轨道context.Configuration.AutoDetectChangesEnabled = false;