实体框架两次添加同一实体

时间:2018-08-01 17:16:43

标签: c# asp.net-mvc entity-framework-6

我在Entity Framework中面临着一个奇怪的情况。在我从事的项目中,我们有一个方法,其中包含超过1.5K行的讨厌代码。此方法添加了一个订单和一个客户。该客户实体具有一个主键,该主键是一个int身份。有时,我无法确定,该客户被添加了两次。

在整个方法中都会调用一些SaveChanges,我认为这就是问题所在,因为我进行了一个测试,创建了一个添加到上下文中的客户,然后两次调用SaveChanges。

赞:

_context.Customers.Add(customer);
_context.SaveChanges();
_context.SaveChanges();

我们知道这是重复的,因为我们通过“电子邮件”字段控制“客户”。应该是主键或至少是唯一索引。现在进行这些更改为时已晚。

我创建了另一个简单的项目,并试图复制,但是没有发生。 我对EF缺乏经验,曾尝试过Google,很少或没有运气,我真的很讨厌EF。

这是一个Asp.net MVC应用程序,带有EF 6.3.1的dotnet 4.5.2。

1 个答案:

答案 0 :(得分:0)

我知道我来晚了一点。您可以使用

_context.Customers.Add(customer);
_context.SaveChanges();
_context.Customers.Add(customer);
_context.SaveChanges();

这将添加两个具有不同ID的客户。