批量更新记录实体框架列表

时间:2017-07-15 05:34:40

标签: c# database entity-framework windows-services

我有一个更新对象列表。我试图只用一个数据库调用来更新所有记录。(一个context.SaveChanges()命令)。该程序在Windows服务中运行。我的问题是而不是更新我正在乘数数据库上的所有记录并添加重复项。以下是我的代码。

//adding the list of updated customer objects to the list
context_CLTUS.Customer_Updates.AddRange(list.customerUpdateList);
foreach (var j in list.customerUpdateList) 
{
    //calling entity state modify for each record
    context_CLTUS.Entry(j).State = EntityState.Modified;
}
//save updated list in one db call.
context_CLTUS.SaveChanges();

我无法澄清为什么所有记录都是重复而不是更新。能否请您解释并帮助我。谢谢。

1 个答案:

答案 0 :(得分:1)

请参阅此answer

您可以尝试以下解决方案:

  1. 在TransactionScope中交换更新操作。

  2. 设置Configuration.AutoDetectChangesEnabled = false。

  3. 尝试Entity Framework Plus,这是一项高性能增强功能 库。