获取抛出异常的特定元素

时间:2013-01-17 20:57:42

标签: c# entity-framework-4.1

所以我想说我需要更新一个对象列表。

      using(db)
      {
          repository = new Repository<Publication>(db);
          foreach (KeyValuePair<int,int> item in publications)
          {
                Publication publication = repository.GetById(item.Key);
                if (publication != null)
                {
                    publication.Quantity = publication.Quantity - item.Value;
                    if (publication.Quantity > 0)
                        db.Publication.Attach(publication);
                }
          }
          try
          {
              db.SaveChanges();
          }
          catch (DbUpdateConcurrencyException e)
          {
              throw new Exception("Could not update the database", e);
          }
        }
    }

当我尝试保存所有对象时,如果有人失败,它应该在catch块中,但我的问题是:如何获取抛出异常的特定对象?

1 个答案:

答案 0 :(得分:3)

您正在捕捉DbUpdateConcurrencyException,其Entries属性,记录为:

  

获取DbEntityEntry对象,这些对象表示无法保存到数据库的实体。

所以基本上可以解决所有问题。