Как я могу заблокировать таблицу на чтение, используя Entity Framework?

У меня есть SQL Server (2012), к которому я обращаюсь с помощью Entity Framework (4.1). В базе данных у меня есть таблица с именем URL, в которую независимый процесс передает новые URL. Запись в таблице URL может быть в состоянии "Новый ","В процессе" или же "Обработанный".

Мне нужно получить доступ к таблице URL из разныхкомпьютеры, проверьте записи URL со статусом "Новый»возьмите первый и отметьте его какВ процессе".

var newUrl = dbEntity.URLs.FirstOrDefault(url => url.StatusID == (int) URLStatus.New);
if(newUrl != null)
{
    newUrl.StatusID = (int) URLStatus.InProcess;
    dbEntity.SaveChanges();
}
//Process the URL

Поскольку запрос и обновление не являются атомарными, я могу иметь два разных компьютера для чтения и обновления одной и той же записи URL в базе данных.

Есть ли способ сделать последовательность select-then-update атомарной, чтобы избежать таких конфликтов?

Ответы на вопрос(3)

Ваш ответ на вопрос