【发布时间】:2017-08-28 11:20:52
【问题描述】:
我有多个使用同一个表的服务,如果某些服务已经在使用它,我想使用 EF 锁定表。
我尝试在以下解决方案的帮助下做到这一点,但它不起作用
How can I lock a table on read, using Entity Framework?
更多信息
我尝试在使用“服务 2”的同时使用“服务 1”中的此代码 调用相同的函数,但它仍然从表中检索数据。
** 我想要“服务 1”调用函数,然后表被锁定,“服务 2”无法检索数据或做任何事情,这有可能吗?
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.RepeatableRead }))
{
var newUrl = dbEntity.URLs.FirstOrDefault(url => url.StatusID == (int) URLStatus.New);
if(newUrl != null)
{
newUrl.StatusID = (int) URLStatus.InProcess;
dbEntity.SaveChanges();
}
scope.Complete();
}
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。
-
谢谢。我将添加更多信息。
标签: asp.net sql-server entity-framework multiprocessing