linqを使ってNhibernateを使用して、一部の選択クエリをデータベースに送ります。Fluentによって生成されたクエリを知る方法NHibernate
Fluent NHibernateで生成された質問は、私の質問はどのようにわかりますか?
linqを使ってNhibernateを使用して、一部の選択クエリをデータベースに送ります。Fluentによって生成されたクエリを知る方法NHibernate
Fluent NHibernateで生成された質問は、私の質問はどのようにわかりますか?
SQLをlog4netにする場合は、設定セクションにロガーを設定してください。
NHibernateパッケージを "INFO"にしてノイズを減らし、NHibernate.SQLをすべてにすることですべてのSQL文を記録できます。
<logger name="NHibernate"> <level value="INFO" /> </logger> <logger name="NHibernate.SQL"> <level value="ALL" /> </logger>
thisを参照してください。必要なのはhibernate.show_sql
です。流暢NHibernateのでは
ありがとう.. ............. –
どのようにFluent NHibernateでそれを設定しますか? –
、あなたはこのようにshow_sql
をオンにすることができます。
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(...))...
NHibernateのは、今Console.Out
にすべてのSQL文を出力します。
こんにちはKevin、 ありがとうございました! Log4Netを使って生成されたSQLをファイルに送るようにしているのだろうか? – 5x1llz
これはとてもイライラです。なぜこれが今までにうまくいかないのか?私は私のコンソールを見ているだけで、そこにはありません。 – Milimetric
また、あなたはあまりにもthis oneようなSQLプロファイラを使用することができ、この便利なhttp://nhprof.com/
を見つけるかもしれません。
また、log4netでフックすることもできます。
間違いなくNHProfを購入して使用してください。これはすばらしい製品で、実行されているクエリだけでなく、NHibernateのマッピングやクエリで発生する可能性のあるパフォーマンス上の問題も示しています。
nhibernateと流暢なnhibernateでsqlクエリを知るための4つのオプションが見つかりました。
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;
}
}
流暢NHibernateは** **任意のクエリを生成しません。それらを生成するのはNHibernateです。 –
私はこの質問はあなたを助けるかもしれないと思う:http://stackoverflow.com/questions/474659/how-to-log-sql-calls-with-nhibernate-to-the-console-of-visual-studio – HerbalMart