Frage

ich Linq zu NHibernate verwenden eine Auswahlabfrage in Datenbank zu feuern.

Meine Frage ist, wie kann ich wissen, die Abfrage generiert durch Fluent NHibernate?

War es hilfreich?

Lösung

Wenn Sie die SQL sein in log4net möchten, stellen Sie sicher, dass Sie den Logger im Konfigurationsabschnitt eingestellt.

habe ich das NHibernate Paket an „INFO“, um das Rauschen zu reduzieren und die NHibernate.SQL an alle, so kann ich alle SQL-Anweisungen protokollieren.

  
 <logger name="NHibernate">
   <level value="INFO" />
 </logger>


  <logger name="NHibernate.SQL">
    <level value="ALL" />
  </logger>

Andere Tipps

Mit Fluent NHibernate, Sie auf show_sql wie diese drehen kann:

Fluently.Configure()
    .Database( MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(...) )...

NHibernate wird nun jede SQL-Anweisung drucken Console.Out.

Sie können auch diese nützliche http://nhprof.com/

Ich habe vier Optionen gefunden SQL-Abfrage in nhibernate und fließend nhibernate kennen.

  1. Melden Sie sich -. Joey V. sagte in Antwort auf diese gleiche Frage
  2. ShowSql -. Kevin Berridge sagte in Antwort auf diese gleiche Frage
  3. NHProf - Dies ist ein genial-Profiler. NHProf
  4. Intercepter - Es ist wirklich gut SQL zu sehen. wir können es in unserer Ausgabe von Visual Studio setzen und auch in Protokolldatei.

    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;
        }
     }
    

Siehe dieses . Was Sie brauchen, ist hibernate.show_sql.

Sie können SQL Profiler wie dieses zu.

verwenden

Auf jeden Fall kaufen und benutzen NHProf . Dies ist ein tolles Produkt und zeigen Ihnen nicht nur, welche Abfragen sind das ausgeführt wird, sondern auch zeige Ihnen mögliche Performance-Probleme mit Ihren NHibernate Zuordnungen und Abfragen.

Sie können auch in log4net Haken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top