Entity framework 如何多次找出ObjectStateManager中的实体

Entity framework 如何多次找出ObjectStateManager中的实体,entity-framework,objectstatemanager,Entity Framework,Objectstatemanager,您好,我发现以下错误: AcceptChanges无法继续,因为对象的键值冲突 使用ObjectStateManager中的另一个对象。确保 在调用AcceptChanges之前,键值是唯一的 现在我正试图修复它,但我需要指出是什么实体给我带来了麻烦,这样我才知道该去哪里寻找 我知道错误是什么,我知道如何解决它,但我不知道如何找出哪个实体是双实体。您可以检查ObjectStateManager以获得所有修改的实体。代码是这样的: var lst = context.ObjectStateMana

您好,我发现以下错误:

AcceptChanges无法继续,因为对象的键值冲突 使用ObjectStateManager中的另一个对象。确保 在调用AcceptChanges之前,键值是唯一的

现在我正试图修复它,但我需要指出是什么实体给我带来了麻烦,这样我才知道该去哪里寻找


我知道错误是什么,我知道如何解决它,但我不知道如何找出哪个实体是双实体。

您可以检查ObjectStateManager以获得所有修改的实体。代码是这样的:

var lst = context.ObjectStateManager
              .GetObjectStateEntries(EntityState.Added |
                                     EntityState.Modified | 
                                     EntityState.Deleted);
var res = lst.GroupBy(c => c.EntityKey).Where(c=> c.Count() > 1);

没关系,我两个都能做,我会翻译:)不过在VB中工作。