Вы не можете заставить EF использовать подсказку NOLOCK, пока не напишите свой собственный провайдер инфраструктуры сущностей, где вы будете контролировать создание всех операторов SQL.Если вы хотите попробовать , проверьте эти упаковщики провайдера, которые можно использовать для упаковки существующих EF-провайдеров.Но все же это потребует анализа и изменения уже созданных операторов SQL, что может быть довольно сложной задачей с большим влиянием на производительность.
Насколько я понимаю, каждый оператор выполняется в своей собственной транзакции.Это причина, почему блокировка вызывает проблемы.Заключение операторов в TransactionScope
с более низким уровнем изоляции просто перенастраивает неявную транзакцию.Но имейте в виду, что незафиксированные чтения также называются грязными чтениями - вы можете получить незафиксированные данные.