0
我是nhibernate的新手(但在之前使用過hibernate for java)。nhibernate日誌sql for postgres但不適用於sql server
我建了一個會話工廠爲我們的SQL Server數據庫(SQL Server企業版8)
ISessionFactory factory2 = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(@"user id=xx; password=xxx;server=xxx;initial catalog=xxx")
.ShowSql()
)
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf<Program>())
.ExposeConfiguration(cfg => new SchemaValidator(cfg).Validate())
.BuildSessionFactory();
所以我用ShowSql()
方法來查詢登錄到控制檯。
在我PROGRAMM我加載/創建兩個對象,並希望堅持他們,然後做一個更新上一列:
using (var session = sf.OpenSession())
{
session.FlushMode = FlushMode.Always;
using (var ta = session.BeginTransaction())
{
Console.ReadKey();
PMA pm = session.CreateCriteria<PMA>()
.Add(Restrictions.Eq("Name", "HANSER")).List<PMA>().FirstOrDefault();
if (pm == null)
{
pm = new PMA();
pm.Prio = "1";
pm.Name = "HANSER";
pm.Datum = DateTime.Now;
session.Save(pm);
}
Clip clip = new Clip();
clip.PMA = pm;
clip.sys_created = DateTime.Now;
clip.sys_name = "system name";
clip.Title = "Test";
session.Save(clip);
Console.ReadKey();
clip.Title = "PETERSEN";
session.SaveOrUpdate(clip);
session.Transaction.Commit();
session.Flush();
session.Dispose();
Console.ReadKey();
}
}
爲下午對象的第一次插入會在控制檯上登錄,但其他插入和剪輯對象的更新不會顯示在控制檯中。當我查看數據庫時,我發現一切正常,所有內容都會被插入和更新。但我想查看查詢。我嘗試將刷新模式設置爲始終,然後創建一個session.Flush()到最後的會話,然後是session.Dispose(),但沒有任何更改。
當我使用postgres(只更改sessionfactory)時,我看到所有查詢日誌。 如何讓nhibernate記錄所有的SQL Server查詢?