模型第一实体框架中的乐观并发6

时间:2017-10-01 16:29:22

标签: c# sql entity-framework entity-framework-6 optimistic-concurrency

我很难让它发挥作用。

我有一个product表,其中version列的类型为二进制固定长度为8,ConcurrencyMode=fixednullable=falsestore 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

我认为这是执行此操作的最佳方式,因为默认情况下功能似乎不存在。谢谢你的回复。

0 个答案:

没有答案