Используя nHibernate, как я могу читать без передачи? - PullRequest
6 голосов
/ 02 июня 2009

Как с помощью nhibernate установить уровень транзакции для чтения незафиксированным?

В SQL я обычно устанавливаю уровень транзакции в начале своей хранимой процедуры или использую встроенный (NOLOCK).

Ответы [ 3 ]

3 голосов
/ 06 апреля 2012

Вы можете использовать nolock встроенные SQL с nhibernate, выполнив следующие шаги:

  1. Создать файл HBM со следующим

    <sql-query name="PersonList">
    return alias="person"  class="Person">
    SELECT * FROM Person WITH(nolock) 
    <sql-query>
    
  2. Используйте AddXmlFile(hbm file path) при создании сеанса nhibernate.

  3. Используя DBSession.GetNamedQuery("PersonList") получить список лиц.

3 голосов
/ 02 июня 2009

Согласно документации, вы можете установить его с помощью hibernate.connection.isolation. Если вам нужно более точное управление, посмотрите на механизмы пессимистической блокировки NHibernate.

0 голосов
/ 22 февраля 2013

Это сработало для меня (специфично для SQL-сервера)

  IDbCommand NHCommand;

  NHCommand= NHSession.Connection.CreateCommand();

  NHCommand.CommandText= "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED";

  NHCommand.ExecuteNonQuery();

Вид разговора с директивой СУБД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...