Sql server nhibernate为postgres记录sql,但不为sql server记录sql

Sql server nhibernate为postgres记录sql,但不为sql server记录sql,sql-server,nhibernate,fluent-nhibernate,Sql Server,Nhibernate,Fluent Nhibernate,我不熟悉nhibernate(但以前使用过java的hibernate) 我为我们的sql server数据库(sql server enterprise edition 8)构建了一个会话工厂 pm对象的第一次插入将记录在控制台上,但剪辑对象的另一次插入和更新不会显示在控制台中。当我查看数据库时,我看到一切正常,所有内容都将被插入和更新。但我想看看这个问题。我尝试将flush模式设置为always,并在最后为会话创建session.flush(),然后创建session.Dispose(),但

我不熟悉nhibernate(但以前使用过java的hibernate)

我为我们的sql server数据库(sql server enterprise edition 8)构建了一个会话工厂

pm对象的第一次插入将记录在控制台上,但剪辑对象的另一次插入和更新不会显示在控制台中。当我查看数据库时,我看到一切正常,所有内容都将被插入和更新。但我想看看这个问题。我尝试将flush模式设置为always,并在最后为会话创建session.flush(),然后创建session.Dispose(),但没有任何更改

当我使用postgres(仅更改sessionfactory)时,我会看到所有查询日志。
如何让nhibernate记录sql server的所有查询?

当使用ADO.NET批处理时(默认情况下在支持它的sql server中打开),DML查询不会记录到控制台

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