锁定SQL服务器表达给定时间并检查它是否已锁定

时间:2016-10-18 03:44:22

标签: c# entity-framework sql-server-2008 table-lock

我想在SQL Server中锁定一段给定的时间。我在代码级别使用C#。我怎样才能实现它,我还需要验证表是否已锁定。我对SQL Server中的锁表知之甚少。我想用实体框架实现它。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以尝试如下所示。

using (var context = new YourContext())
    {
     using (var dbContextTransaction = context.Database.BeginTransaction())
     {
       //Lock the table during this transaction
       context.Database.ExecuteSqlCommand("SELECT 1 FROM YourTable WITH (TABLOCKX)
    WAITFOR DELAY '00:03:00'");

            //your work here

            dbContextTransaction.Commit();
      }
}

注意:表锁将在退出BeginTransaction块后释放