我的所有应用程序都使用字段级乐观并发。
这可以通过跟踪原始数据库值并在原始值,更新值和当前数据库值之间执行3方式比较来确定(a)用户更新的内容以及(b)其他用户已更新的内容
我的应用程序将字段连续分组,并允许多个用户更新同一行中的不同组而不会发生冲突。
这是因为不同部门共同处理相同记录的不同字段。
EF4.1似乎只支持基于整行的非常基本的并发模型! 这意味着当没有用户时,用户会遇到无休止的冲突......
是否可以覆盖内置行为?
答案 0 :(得分:3)
是否可以覆盖内置行为?
您可以在SaveChanges
覆盖中实现它的应用程序逻辑。您只需要三组值:
public override int SaveChanges() {
foreach (var entry in ChangeTracker.Entries()
.Where(e => e.State == EntityState.Modified) {
// Original values:
DbPropertyValues originalValues = entry.OriginalValues;
// Current values:
DbPropertyValues currentValues = entry.CurrentValues;
// Database values:
DbPropertyValues dbValues = entry.GetDatabaseValues();
// Perform your logic here
}
return base.SaveChanges();
}