NHibernate: Как показать сгенерированные SQL-операторы в консоли Windows - PullRequest
0 голосов
/ 18 марта 2010
 return Fluently.Configure()
                .Database(MsSqlConfiguration.MsSql2008
                              .ConnectionString(c => c
                                                         .Database(Database)
                                                         .TrustedConnection()
                                                         .Server(Server)
                              ).ShowSql())
                .ExposeConfiguration(c => c.SetProperty("current_session_context_class", "web"))
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<TeamMap>()).BuildConfiguration();

У меня есть веб-приложение. Эта конфигурация не работает.

У меня также есть консольное приложение, которое будет отвечать за запись всего сгенерированного SQL.

Как получить сгенерированные команды SQL?

Заранее спасибо!

1 Ответ

2 голосов
/ 18 марта 2010

Поскольку NHibernate уже регистрирует SQL через log4net, это самый простой подход. Поскольку вам не нужны файлы журналов, настройте приложение трассировки и просмотрите результаты обычными методами для ASP.NET Trace . Конфигурируя код, вы можете быть уверены, что он исчезнет, ​​когда он вам больше не нужен.

var appender = new log4net.Appender.AspNetTraceAppender();
appender.Layout = new log4net.Layout.PatternLayout{ ConversionPattern="%-5level - %message%newline" };
appender.Threshold = log4net.Core.Level.Info;
log4net.Config.BasicConfigurator.Configure( appender );

Если вам нужны операторы SQL, вам нужны сообщения только от NHibernate.Loader.Loader на уровне информации.

Trace - это средство ведения журнала в ASP.NET, результаты которого можно увидеть либо в конце страницы, сгенерировавшей сообщения, либо через ~ / trace.axd

Если вывод трассировки слишком многословен для ваших нужд или вы не хотите идти по этому пути по какой-либо причине, существуют другие приложения, которые могут отправлять сообщения журнала по сети.

UDPAppender отправляет сообщение журнала по сети через UDP.

TelnetAppender позволяет подключаться к log4net через telnet. Для просмотра сообщений вы можете подключиться к своему приложению через консольное окно.

var appender = new log4net.Appender.TelnetAppender{ Port=23 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...