代码之家  ›  专栏  ›  技术社区  ›  user1012506

处理Context.SaveChanges()中每个实体的异常

  •  0
  • user1012506  · 技术社区  · 6 年前

    是否可以为包中的每个实体获取保存失败的特定异常?

    saveChanges()的简单使用为所有的波段提供了一个例外。

    这是我用try-catch块编写的代码。

      foreach (EntityBase ent in response.Entities)
                {
                    try
                    {
                        //save each ent ?
                    }
                    catch (DbEntityValidationException ex){...}
                    catch (DbUpdateException e) { ...}
    
                    catch (Exception ex){...}
                }
    
    2 回复  |  直到 6 年前
        2
  •  0
  •   user1012506    6 年前

    saveChanges()

    foreach (AbstractEntity ent in response.Entities)
                    {
                        //defining new Entry for context - action by state
                        ctx.Entry(ent).State = ent.getEntityState();
                        ctx.SaveChanges();
                        ctx.Entry(ent).State = EntityState.Detached;
                    } 
    
    
                    catch (Exception ex){
    string errorMessages = ex.InnerException.InnerException.ToString();
                    throw ex.InnerException.InnerException;}
                }