/ / Как да четем sql, генериран от NHibernate във Visual Studio - visual-studio-2010, console.writeline

Как да прочетете SQL, генериран от NHibernate в Visual Studio - visual-studio-2010, console.writeline

Според това, което знам, има 3 начина да прочетете скрипта на sql, генериран от NHibernate: 1. log4net 2. sql профилер 3. show_sql = true

Тук просто искам да говоря за третия, защото каза, че мога да прочета sql в изходния прозорец на Visual Studio. Но каквото и да направя, не виждам нищо ?!

Някой човек каза, че "show_sql = true" просто означава "Console.WriteLine ()", така че публикувам въпрос тук.

Трябва да кажа, че не получавам това, което искам, затова тук обобщавам въпросите си: в прозореца за изход в уеб приложение:

  1. Може ли да се покаже резултатът от "Console.WriteLine ()"?
  2. Може ли "show_sql = true" да направи скрипта на sql?

Ако да, как?

Отговори:

2 за отговор № 1

Не мисля, че Visual Studio ще покаже конзолаизход за библиотека на клас или проект за уебсайт. Това, което правя, е да конфигурирам log4net, за да напиша SQL на NHibernate в текстов файл, след това да отворя файла във Visual Studio. С правилната конфигурация VS ще покаже актуализации на файла, като щракне в прозореца.

Във вашия Web.config (или app.config) дефинирайте раздела log4net, имайте NHibernate формат на SQL хубаво, създайте текстово приложение и добавете съобщения към NHibernate там:

<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="format_sql">true</property>
</session-factory>
</hibernate-configuration>

<log4net>
<appender name="NHibernateLogFile" type="log4net.Appender.FileAppender">
<file value="../Logs/NHibernate.log" />
<appendToFile value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{HH:mm:ss.fff}%m%n==========%n" />
</layout>
</appender>

<logger name="NHibernate" additivity="false">
<level value="WARN" />
<appender-ref ref="NHibernateLogFile" />
</logger>
<logger name="NHibernate.SQL" additivity="false">
<level value="DEBUG" />
<appender-ref ref="NHibernateLogFile" />
</logger>
</log4net>
</configuration>

След това отворете NHibernate.Log във Visual Studio. Поради MinimalLock по-горе, Visual Studio може да чете файла едновременно с logGnet, който му пише. Когато щракнете в прозореца, VS ще презареди файла. Просто не забравяйте да изключите това, когато разгърнете уебсайта или приложението.