Я хочу заблокировать таблицу на определенное время в SQL Server. Я использую С# на уровне кода. Как я могу этого добиться, мне также нужно проверить, заблокирована таблица или нет. У меня нет особых знаний о блокировке таблиц в SQL Server. Я хочу добиться этого, используя структуру сущности. Любая помощь горячо приветствуется.
Заблокируйте таблицу SQL-сервера на заданное время и проверьте, не заблокирована ли она.
comment
stackoverflow .com/questions/25273157/
- person Vincent   schedule 18.10.2016
comment
Это невозможно сделать с помощью чистой сущности-фреймворка. Вам придется использовать dao.
- person Erik Philips   schedule 18.10.2016
Ответы (1)
Вы можете попробовать, как показано ниже.
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
.
person
Sampath
schedule
18.10.2016
небольшая правка. Я должен быть
dbContextTransaction.Commit()
вместо scope.Commit()
, а таблица в команде SQL должна быть заменена фактическим именем таблицы
- person Madhur Maurya; 18.10.2016