mat*_*ieu 42
您可以在app.config/web.config文件中放置类似的内容:
在configSections节点中:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
Run Code Online (Sandbox Code Playgroud)
在配置节点中:
<log4net>
<appender name="NHibernateFileLog" type="log4net.Appender.FileAppender">
<file value="logs/nhibernate.txt" />
<appendToFile value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="NHibernate.SQL" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="NHibernateFileLog"/>
</logger>
</log4net>
Run Code Online (Sandbox Code Playgroud)
别忘了打电话
log4net.Config.XmlConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)
在您的应用程序启动时,或放置
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
Run Code Online (Sandbox Code Playgroud)
在assemblyinfo.cs中
在配置设置中,将"show_sql"属性设置为true.
Ale*_*der 12
我知道,我有点晚了,但这样做的伎俩是独立的工具/数据库/框架.我使用NH拦截器而不是那些有效的选项.
首先,实现一个扩展NHibernate.EmptyInterceptor并实现NHibernate.IInterceptor的类:
using NHibernate;
namespace WebApplication2.Infrastructure
{
public class SQLDebugOutput : EmptyInterceptor, IInterceptor
{
public override NHibernate.SqlCommand.SqlString
OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
System.Diagnostics.Debug.WriteLine("NH: " + sql);
return base.OnPrepareStatement(sql);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,只需在打开会话时传递实例.一定要在DEBUG中这样做:
public static void OpenSession() {
#if DEBUG
HttpContext.Current.Items[SessionKey] = _sessionFactory.OpenSession(new SQLDebugOutput());
#else
HttpContext.Current.Items[SessionKey] = _sessionFactory.OpenSession();
#endif
}
Run Code Online (Sandbox Code Playgroud)
就是这样.
从现在开始,你的sql命令就像这些......
var totalPostsCount = Database.Session.Query<Post>().Count();
var currentPostPage = Database.Session.Query<Post>()
.OrderByDescending(c => c.CreatedAt)
.Skip((page - 1) * PostsPerPage)
.Take(PostsPerPage)
.ToList();
Run Code Online (Sandbox Code Playgroud)
..在输出窗口中直接显示:
NH:从帖子post0_选择强制转换(count(*)为INT)为col_0_0_
NH:选择post0_.Id如Id3_,post0_.user_id如user2_3_,post0_.Title如Title3_,post0_.Slug如Slug3_,post0_.Content如Content3_,post0_.created_at如created6_3_,post0_.updated_at如updated7_3_,post0_.deleted_at如deleted8_3_来自帖子post0_ order by post0_.created_at desc limit?抵消?
| 归档时间: |
|
| 查看次数: |
34535 次 |
| 最近记录: |