所以我想说我需要更新一个对象列表。
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
块中,但我的问题是:如何获取抛出异常的特定对象?
答案 0 :(得分:3)
您正在捕捉DbUpdateConcurrencyException
,其Entries
属性,记录为:
获取DbEntityEntry对象,这些对象表示无法保存到数据库的实体。
所以基本上可以解决所有问题。