我使用的是EF 4.0,我在数据库中有一个带有时间戳字段的表,因为我想在此表中控制并发性。
然后,我创建了我的edmx,并使用模板DBContext生成了POCO类。
我做的第一次尝试是,在edmx中,在timestamp字段中,我将存储生成的模式设置为none。然后在我的代码中我做:
myContext.MyTable.Attach(myEntity);
myContext.Entry<MyTable>(myEntity).Property(p => p.AnyFieldNoTimestamp).IsModified = true;
myContext.SaveChanges();
这给了我一个例外,说明无法更新时间戳列。
如果我只标记了要修改的字段,并且此字段不是时间戳,为什么会出现此错误?
然后我尝试将edmx中存储的propery存储模式设置为Indentity。
我真的有一个交易和两个saveChanges。在第二次尝试中,第一个savechanges没有给出任何错误但是在第二个savechanges中我得到了受影响的异常0行,因为它似乎实体的时间戳已从第一个savechanges更改为第二个,所以在并发控制中我得到了这个例外。
所以我想知道如何在事务中使用时间戳字段和两个保存字符。
感谢。
答案 0 :(得分:0)
我尝试使用Computed组,在这种情况下可以正常工作。