Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 批量更新记录实体框架列表_C#_Database_Entity Framework_Windows Services - Fatal编程技术网

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

C# 批量更新记录实体框架列表,c#,database,entity-framework,windows-services,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 (va

我有一个更新对象的列表。我试图只用一个数据库调用来更新所有记录。(一个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();
我无法澄清为什么所有记录都是重复的而不是更新的。你能解释一下并帮我解决这个问题吗。谢谢。

请参阅此

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

  • TransactionScope中的交换更新操作

  • 设置Configuration.AutoDetectChangesEnabled=false

  • 试试,一个高性能的增强 图书馆


  • 这里唯一需要的是context_CLTUS.SaveChanges();删除其余内容如果删除
    AddRange
    调用会发生什么?删除
    AddRange
    对我很有效谢谢你的评论!第一次尝试实体框架Plus,节省了我的时间!谢谢大家!@蒂兰卡1989很抱歉我的误解,在你的情况下,也许上面的评论更容易,谢谢你的投票。