Вход SQL-запросов NHibernate

Существует ли способ получить доступ к полному SQL-запросу, включая значения, в моем коде?

Я в состоянии зарегистрировать SQL-запросы с помощью log4net:

<logger name="NHibernate.SQL" additivity="false">
    <level value="ALL"/>
    <appender-ref ref="NHibernateSQLFileLog"/>
</logger>

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

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

13
задан Michael Maddox 4 February 2010 в 12:46
поделиться

3 ответа

Либо используйте sql profiler, либо посмотрите nhprof на http://nhprof.com/

Оба позволят вам увидеть вывод sql.

Также установите свойство show_sql в конфигурационном файле hibernate

<property name="show_sql">true</property>
4
ответ дан 1 December 2019 в 22:57
поделиться

Используйте приложение log4net с определенной целью (оно поддерживает включение / выключение) или просто расширьте его и включите в своем try-catch-finally- выключенный.

1
ответ дан 1 December 2019 в 22:57
поделиться

вы можете использовать перехватчик для этого:

public class LoggingInterceptor : EmptyInterceptor {
    public override SqlString OnPrepareStatement(SqlString sql) {

        Debug.WriteLine(sql);

        return sql;
    }
}

Смотрите Nhibernate Docs для различных способов регистрации в nhibernate.

9
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: