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();我有一个web应用程序。此配置不起作用。
我还有一个控制台应用程序,负责写出所有生成的SQL。
如何获取生成的SQL命令?
提前感谢!
发布于 2010-03-19 00:35:56
因为NHibernate已经通过log4net记录了SQL,所以这是最简单的方法。由于您不需要日志文件,因此可以配置跟踪附加器,并通过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的Info级别的消息。
跟踪是ASP.NET中的一个日志记录工具,其结果可以在生成消息的页面末尾看到,也可以通过~/trace.axd查看
如果跟踪输出对于您的需要来说太过冗长,或者您出于任何原因不想这样做,那么可以使用其他附加器通过网络发送日志消息。
UDPAppender通过UDP在网络上发送日志消息。
TelnetAppender允许您通过telnet连接到log4net。要查看消息,可以从控制台窗口telnet到您的应用程序。
var appender = new log4net.Appender.TelnetAppender{ Port=23 };https://stackoverflow.com/questions/2471421
复制相似问题