从LINQ到SQL.ChangeConflictException: MemberConflicts.计数= 0

本文关键字:MemberConflicts 计数 ChangeConflictException LINQ SQL | 更新日期: 2023-09-27 18:11:41

我在应用程序的数据层上使用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为空。所以我不知道我为什么会有这种冲突,我该怎么做。

conflict.Resolve(RefreshMode.KeepCurrentValues);

唯一的事情,我已经注意到,这是发生当我试图从数据库中删除实体。但这段代码在其他情况下也适用于删除。我知道关于我的问题的信息很少,但也许有人能给我一些建议,我需要检查什么?

从LINQ到SQL.ChangeConflictException: MemberConflicts.计数= 0

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