我試圖讓Castle ActiveRecord向我展示它生成的SQL。我發現的各種博客提供了兩種選擇:Castle ActiveRecord:查看SQL最簡單的方法是什麼?
(1)使用NHibernate「show_sql」設置。麻煩的是,我正在使用程序化配置,就像這樣。
var config = XmlConfigurationSource.Build(
DatabaseType.MsSqlServer2008, Settings.Default.StationManagerDbConnectionString);
config.IsRunningInWebApp = isRunningInWebApp;
config.PluralizeTableNames = true;
var modelAssembly = Assembly.GetAssembly(typeof(OneOfMyClasses));
ActiveRecordStarter.Initialize(modelAssembly, config);
通過編程配置,似乎沒有指定「show_sql」的方法。
(2)使用log4net。但是拋開log4net的一個痛苦之處,我還沒有找到一種方法來獲得只是的SQL。我得到了調試數據的gobs和gobs,其中的SQL語句只是一小部分。
所以:有沒有一些方法可以讓我的編程配置Castle ActiveRecord,但也讓NHibernate輸出只是SQL?
編輯:這是我得到與log4net一起工作。但在我的Web應用程序的前兩頁中,這在調試窗口中吐出了超過14,000行。如何更改此代碼以僅獲取SQL?
var appender = new log4net.Appender.DebugAppender
{
Layout = new log4net.Layout.SimpleLayout(),
Name = "NHibernate.SQL",
Threshold = log4net.Core.Level.Debug
};
log4net.Config.BasicConfigurator.Configure(appender);
看到我的編輯。有沒有簡單的方法來修改我用來輸出SQL的log4net配置代碼? –
@Kyralessa,看看我的編輯。這段代碼沒有經過測試,但應該可以工作。 –
神聖煙,這是有效的!你是個天才! –