Я не думаю, что Entity Framework предоставляет какой-либо способ установки отложенной блокировки для обновлений, но вы можете получить это поведение, используя Database.Begin
API для запуска, фиксации и отката транзакций.
Вы можете начать транзакцию при обновленииЛюбая вещь и совершить транзакцию после завершения ваших обновлений в течение этого интервала, никто не сможет обновить какие-либо данные в базе данных.
using (var context = new BloggingContext())
{
using (var transaction = context.Database.BeginTransaction())
{
try
{
//Did your work here
//During this time it will help as a pending lock for other updates
transaction.Commit();
}
catch (Exception)
{
// TODO: Handle failure
}
}
}
Надеемся, что это покроет вашу проблему.
Обновлено
Обратите внимание, что только те запросы, которые выполняются с использованием другого экземпляра BloggingContext()
, будут установлены в ожидании блокировки; это поведение не будет применяться к экземпляру BloggingContext()
, который использовался для запуска транзакции.