实体框架中的并发管理

Fla*_*air 5 c# entity-framework linq-to-sql

我正在尝试将我的代码从 Linq-to-SQL 转换为 Entity Framework 6。我注意到 Entity Framework 中的并发管理选项非常“有限”。

问题:Entity Framework 中的ConflictMode.ContinueOnConflict和是什么ConflictMode.FailOnFirstConflict?我怎样才能尝试一次在数据库中保存所有更改并稍后收集所有冲突?据我所知,EF 中似乎没有直接的方法,还是我遗漏了什么?

更具体地说,我将如何将此代码更改为 EF6 样式?

try
{
    storage.Accounts.InsertAllOnSubmit(newAccountsList);
    storage.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException)
{
    var failedItems = storage.ChangeConflicts;
    foreach (var failedItem in failedItems)
    {
        failedItem.Resolve(RefreshMode.KeepCurrentValues);
    }
}
catch (KeyViolationException)
{
    // Here I'm doing nothing
}

storage.SubmitChanges(ConflictMode.FailOnFirstConflict);
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。对此没有任何线索。