LINQ to SQL。 ChangeConflictException:MemberConflicts.Count = 0

时间:2014-07-07 14:28:18

标签: c# linq-to-sql

我在我的应用程序的数据层上使用LINQ to SQL。我对提交更改有一些奇怪的“类型”错误。这是我的代码的一部分:

try
{
    dataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException)
{
    foreach (ObjectChangeConflict conflict in dataContext.ChangeConflicts)
    {
        foreach(MemberChangeConflict memberConflict in conflict.MemberConflicts)
        {
            memberConflict.Resolve(RefreshMode.KeepCurrentValues);
        }   
    }
}

它始终正常,所有冲突都成功解决。但是现在我遇到了冲突,其中有冲突.MemberConflicts = 0. ChangeConflictException没有关于冲突的信息,Inner Exception为null。所以我不知道为什么我会遇到这种冲突以及我与它有什么关系。 这也没有帮助:

conflict.Resolve(RefreshMode.KeepCurrentValues);

只有我注意到的事情,当我尝试从数据库中删除实体时会发生这种情况。但是这个代码适用于其他情况下的删除。 我知道关于我的问题的信息很少,但也许有人可以给我建议我需要检查的内容?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,但这不是一个好的解决方案。只需在两个不同的提交更改中单独更新和删除。首先我做了所有更新,然后删除。它有效。但我仍然不知道,为什么这不能在一次提交中合作。