我在 SQL 中有一个计数器,每次用户进行活动时都需要关闭该计数器。有时活动是快速而激烈的,我最终会遇到 ChangeConflictException。这很好,但是当它发生时,我希望最终值是这两种变化的组合。
像这样的东西
try
{
db.SubmitChanges();
}
catch (ChangeConflictException cce)
{
foreach (ObjectChangeConflict occ in db.ChangeConflicts)
{
foreach (MemberChangeConflict mcc in occ.MemberConflicts)
{
if (mcc.DatabaseValue is int)
{
mcc.FinalValue = mcc.DatabaseValue + mcc.CurrentValue - mcc.OriginalValue;
}
}
}
}
样本值,原始值为 50,当前值为 30(减去 20),数据库值为 40(从原始值减去 10)。最终值应为 40-20 = 20。
当然,没有 mcc.FinalValue 这样的东西。我该怎么做呢?