gpt4 book ai didi

sql-server - Entity Framework - 悲观锁定

转载 作者:行者123 更新时间:2023-12-02 23:49:39 24 4
gpt4 key购买 nike

我想做的基本上是 what NHibernate does当你做类似的事情时:

var instance = session.Get<Customer>(id, LockMode.Upgrade);

我需要锁定数据库中的实体行。为什么我需要那个?想象一下类似工作流实例的东西,可以由多个参与者(人或流程)同时更新。

我的约束不允许乐观锁定解决方案。

最佳答案

EF 不支持此功能。如果您想通过查询锁定某些记录,您必须执行以下操作:

using (var scope = new TransactionScope(...))
{
using (var context = new YourContext(...))
{
var customer =
context.ExecuteStoreQuery<Customer>("SELECT ... FROM Customers WITH (UPDLOCK) WHERE ...");

// rest of your logic while record is locked

scope.Complete();
}
}

或者context.Database.SqlQuery(如果是 DbContext API)。

关于sql-server - Entity Framework - 悲观锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7635216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com