我目前正在使用Entity Framework 6.我正在重新加载DbUpdateConcurrencyException.Entry但我还需要在导致异常的特定条目上执行一些任务。我无法弄清楚如何访问该特定的底层对象,并希望对此问题提供任何帮助。
我有以下方法:
public void ReloadEntries()
{
foreach (var item in entries)
{
item.Reload();
//TODO: cast back to original "Product" datatype so I can
//re-process a SPECIFIC property on underlying object here
}
entries.Clear();
}
我将从后来改变,因为我已经意识到'条目'将始终只包含1个项目。
答案 0 :(得分:2)
您需要以下内容:
try
{
item.Reload();
//TODO: re-process property on underlying object here
}
catch (DbUpdateConcurrencyException ex)
{
// process on ex.Entries[0].Entity or
// ex.Entries[0].Entity.OriginalValues
((DataType)ex.Entries[0].Entity).Property = value;
// if your object context is still open, you could try to re-submit after trying the
// entity
ctx.Attach(ex.Entries[0].Entity);
ctx.SaveChanges();
}
此链接可能有助于如何处理该条目列表:http://msdn.microsoft.com/en-us/library/gg696410(v=vs.113).aspx