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



我在实体框架中遇到了一个奇怪的情况。在我工作的一个项目中,我们有一个方法,其中包含超过1.5K行的讨厌代码。此方法添加订单和客户。该客户实体有一个主键,它是一个int标识。有时,我还无法确定,该客户会被添加两次。

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

像这样:

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

我们知道这是重复的,因为我们通过电子邮件字段控制客户。应该是主键或至少是唯一索引。现在做出这些改变已经太晚了。

我创建了另一个简单的项目,并试图复制,但没有成功。我对EF没有什么经验,尝试过谷歌,运气很差,我真的很讨厌EF。

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

我知道我有点迟到了,但是。您可以使用

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

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

最新更新