我很难让它发挥作用。
我有一个product
表,其中version
列的类型为二进制固定长度为8,ConcurrencyMode=fixed
,nullable=false
,store generated pattern = computed
。
现在,当我更新代码中的product
实体时,我看不到此version
列已递增。我没有看到如何在数据库中创建它timestamp
的类型,除非我直接在那里更改它或者用实体的元数据弄乱,但后来我认为设置“存储生成就足够了”图案”。我只是希望这可以使用模型第一种方法来设置所提到的字段的属性。
我的C#代码是:
_db = new ProductsContext();
_db.Products.Load();
try
{
using (var db2 = new ProductsContext())
{
db2.Products.Load();
Product p2 = db2.Products.Find(3);
p2.quantity = 2;
db2.SaveChanges();
}
Product p = _db.Products.Find(3);
p.quantity = 3;
_db.SaveChanges();
}
catch (DbUpdateConcurrencyException ex)
{
string a = "";
}
如果我在调试模式下运行它,我看不到异常。谢谢。
好的,我发现另一个问题,提出了类似的问题,并且有人说要更改数据库生成模板......
Concurrency timestamp column stays null with computed
我认为这是执行此操作的最佳方式,因为默认情况下功能似乎不存在。谢谢你的回复。