Я использую 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
.
спасибо .. ............. –
Как вы настраиваете это с помощью Fluent NHibernate? –
С Fluent NHibernate, вы можете включить show_sql
, как это:
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ShowSql().ConnectionString(...))...
NHibernate теперь будет печатать каждый SQL заявление Console.Out
.
Hi Kevin, Спасибо, что разместили это! Мне интересно, если вы также подключили Log4Net, чтобы он отправил сгенерированный SQL в файл? – 5x1llz
Это так расстраивает. Любая идея, почему это никогда не будет работать? Я просматриваю свою консоль, и ее просто нет. – Milimetric
Вы также могли бы найти это полезным http://nhprof.com/
Вы можете использовать SQL профайлеры как this one тоже.
Вы также можете подключить log4net.
Определенно покупка и использование NHProf. Это потрясающий продукт, который не только показывает вам, какие запросы запускаются, но также показывает любые потенциальные проблемы с производительностью с отображением и запросами NHibernate.
Я нашел 4 варианта знать sql-запрос в nhibernate и свободно nhibernate.
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;
}
}
Fluent NHibernate ** не ** генерировать какие-либо вопросы. Это NHibernate, который их генерирует. –
Я думаю, этот вопрос может помочь вам: http://stackoverflow.com/questions/474659/how-to-log-sql-calls-with-nhibernate-to-the-console-of-visual-studio – HerbalMart