Как настроить Быстрый NHibernate для вывода запросов, чтобы Проследить или Отладить вместо Консоли? Я использую MsSqlConfiguration.MsSql2008.ShowSql()
но это не имеет никаких параметров, и я ничего не могу найти на Google.
Вы, вероятно, хотите использовать Log4net, не отображающую. Вот некоторая конфигурация для отправки запросов для отладки:
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="false">
<appender name="WindowsDebugOutput" type="log4net.Appender.DebugAppender,
log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<logger name="NHibernate.SQL" additivity="false">
<level value="DEBUG" />
<appender-ref ref="WindowsDebugOutput" />
</logger>
</log4net>
, а затем вызовите это из вашего кода перед открытием сеанса NHIBERNATE:
log4net.Config.XmlConfigurator.Configure();
, когда вы добавляете ссылку на DLL Log4net, убедитесь, что его «копировать локальное» свойство для "правда".
Это не специфично для Fluentnnernate, он работает так же в любом варианте Nibernate.
Я не пробовал этого с SQL Server, но с SQLite, следующий код покажет сгенерированный SQL в окне Output (Меню отладки -> Windows -> Output, в VS2008).
Комбинированное окно "Show output from:" в окне Output должно быть установлено в "Debug" - VS2008 сделала это для меня автоматически.
sessionFactory = Fluently.Configure()
.Database(SQLiteConfiguration.Standard
.UsingFile(DbFile)
// Display generated SQL in Output window
.ShowSql()
)
.Mappings(m => m.AutoMappings.Add( GetAutoPersistenceModel() ))
.BuildSessionFactory()
;
Слово предупреждения - включение этой опции может значительно замедлить выполнение.