EF4 в настоящее время не имеет встроенного способа сделать это, ЕСЛИ ef4 генерирует все ваши запросы.
Есть способы обойти это, например использовать хранимые процедуры или более расширенную модель встроенных запросов, однако это может занять много времени, если не сказать больше.
Я считаю (и не говорю от лица Microsoft по этому поводу), что кеширование - это решение Microsoft, предназначенное для облегчения нагрузки на сервер на сайтах EF4. Чтение незафиксированных (или nolock), встроенных в фреймворк, может создать непредсказуемые проблемы для ожидаемого поведения EF4 при одновременном запуске двух контекстов. Это не означает, что в вашей ситуации требуется такой уровень параллелизма.
Похоже, вас попросили заблокировать ВСЕ варианты выбора. Хотя я согласен с предыдущим постером, что это может быть опасно, если у вас есть ЛЮБЫЕ транзакции, которые должны быть транзакциями, я не согласен, что администратор баз данных автоматически превращается в маппет. Возможно, вы просто используете CMS, которая отлично подходит для грязного чтения. Вы можете изменить УРОВЕНЬ ИЗОЛЯЦИИ для всей базы данных, что может иметь тот же эффект.
Администратор базы данных, возможно, рекомендовал nolock для операций, которые были ТОЛЬКО выбранными (что нормально, особенно если есть ORM, который неправильно загружается и делает некоторые хитрые дампы данных). Самым забавным в этом комментарии маппета является то, что сам Stack Overflow запускает SQL-сервер в режиме READ UNCOMMITTED. Думаете, вам нужно найти другое место, чтобы получить ответы на свои проблемы?
Поговорите со своим администратором баз данных о возможности настройки этого параметра на уровне базы данных или рассмотрите стратегию кэширования, если она вам нужна только в нескольких местах. В конце концов, Интернет не имеет состояния, поэтому параллелизм часто может быть иллюзией, если вы не решите его напрямую.
Информация об уровнях изоляции
person
Gats
schedule
03.01.2011
SNAPSHOT/READ_COMMITTED
, а неNOLOCK
. Я считаюNOLOCK
в основном устаревшим - не то чтобы это когда-либо было хорошей идеей, поскольку это делает ваши транзакции не-ACID. См. Также http://stackoverflow.com/questions/1452996/is-the-nolock-sql-server-hint-bad-practice Кроме того, в этой статье перечислены преимущества и недостатки sqlmag.com/Articles/ArticleID/93075/93075.html?Ad=1 - person Craig Stuntz   schedule 26.01.2010