Rah*_*shi 20 sql nhibernate logging output
我正在使用linq来向Nhibernate发出一些选择查询到数据库.
我的问题是,我怎么知道,Fluent NHibernate生成的查询?
Kev*_*dge 36
使用Fluent NHibernate,您可以这样打开show_sql
:
Fluently.Configure()
.Database( MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(...) )...
Run Code Online (Sandbox Code Playgroud)
NHibernate现在将打印每个sql语句Console.Out
.
如果您希望SQL位于log4net中,请确保在配置部分中设置记录器.
我把NHibernate包放在"INFO"以减少噪音和NHibernate.SQL,所以我可以记录所有的SQL语句.
<logger name="NHibernate"> <level value="INFO" /> </logger> <logger name="NHibernate.SQL"> <level value="ALL" /> </logger>
我找到了 4 个选项来了解 nhibernate 和 fluent nhibernate 中的 sql 查询。
Intercepter - 看sql真是太好了。我们可以把它放在我们的 Visual Studio 输出中,甚至放在日志文件中。
ISessionFactory sf = Fluently.Configure()
.Database(MySQLConfiguration.Standard.ConnectionString(ConnectionString).ShowSql())
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Stock>())
.ExposeConfiguration(c => c.SetInterceptor(new ABCInterceptor()))
.BuildSessionFactory();
public class ABCInterceptor : EmptyInterceptor
{
public override NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
{
Trace.WriteLine(sql.ToString());
return sql;
}
}
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
23101 次 |
最近记录: |