首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >间歇System.Data.Entity.Infrastructure.DbUpdateConcurrencyException

间歇System.Data.Entity.Infrastructure.DbUpdateConcurrencyException
EN

Stack Overflow用户
提问于 2015-02-22 17:13:49
回答 1查看 2.1K关注 0票数 0

以下代码导致间歇性异常:

代码语言:javascript
复制
public int UnblockJob(int jobId)
{
    using (var connect = MakeConnect())
    {
        var tag = connect.JobTag.SingleOrDefault(jt => jt.JobId == jobId && jt.Name == Metrics.TagNameItemBlockCaller);
        if (tag == null)
        {
            return 0;
        }
        connect.JobTag.Remove(tag);
        return connect.SaveChanges();
    }
}

我如何纠正或排除它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-22 17:30:35

来自DbUpdateConcurrencyException的文档

当预期实体的DbContextSaveChanges将导致数据库更新时抛出的异常,但实际上数据库中的任何行都没有受到影响。

这意味着您试图删除的记录已经从数据库中删除。看起来,您有另一个进程正在删除记录,或者这个函数可以并发调用。

有几个解决方案,这里有几个:

修复源问题停止影响数据的其他进程。

捕获错误将此方法包装在try/catch块中,毕竟您可能只关心记录已被删除:

代码语言:javascript
复制
try
{
    //Existing code here
}
catch(DbUpdateConcurrencyException)
{
    //Safely ignore this exception
}
catch(Exception e)
{
    //Something else has occurred
    throw;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28660708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档