A用户加载分类到树中;
B用户加载分类到树中;
B先修改、保存;
A再修改、A保存,不触发OptimisticConcurrencyException并发异常。(DataModel中实体Category的Name字段设置了并发)
分析原因,是每次更新操作时都声明新的context,从数据库中获取最新记录,立即更新自然不会产生并发:
var context = new Entities(new Uri("http://localhost:2471/DataService.svc"));
var category = (from c in context.Category select c).FirstOrDefault();
if (category != null)
{
category.Name = "abc";
context.UpdateObject(category);
context.SaveChanges();
}
如何解决:
将context设为全局变量可否?似乎不是好的实践。
另外,将context设为全局变量,是否有多少客户端,就保持多少个数据数连接?