【发布时间】:2012-01-31 23:52:23
【问题描述】:
我正在使用带有 NHibernate 3.1 的 Visual Studio 2010 并使用 Fluent NHibernate 进行映射。它运行良好,启用 ShowSql 后,它会显示所有选择查询。
我已经进入了我正在执行一些更新的程序部分,但它们没有显示出来。起初我认为即使我使用显式事务也不会触发更新 - 但数据库中的数据正在发生变化。所以 - 不知何故,查询正在执行,但没有显示在 Visual Studio 的输出窗口中。
有什么想法吗?
编辑 事实证明,我将两个答案混合在一起。根本不需要 Log4Net 在输出窗口中从 NHibernate 生成 UPDATE 语句。
将AdoNetBatchSize(0) 与 ShowSQL 结合使用DID 可解决问题。
【问题讨论】:
-
type="log4net.Appender.TraceAppender"如果您想编写 Visual Studio 输出窗口,请改用它。 -
感谢您的反馈。我做了这个改变,但我仍然没有在输出中看到任何东西。我缺少配置的某些部分吗?
-
有机会看到您执行更新的代码吗?你确定要在交易中包装这个东西吗?您是否尝试过强制提交?另外,我并不是想向您推销 NHProfiler,但您为什么不使用 30 天试用版来解决您的问题。它不会花费你任何东西。如果您尝试过 log4net 和 NHProf,您将确定是您的记录器或您的代码有问题。
-
你在 SO 上看到过this question 吗?看起来像您的问题(有解决方案)。
-
我尝试了 NH Profiler 试用版,我的代码运行良好。 NH Profiler 显示更新命令。而且我知道记录器没有工作 - 因为 Log4Net 甚至没有显示选择命令(ShowSQL 正在输出)。我对 NH Profiler 的强大功能毫不怀疑,我只是不想看到如果我无法长期使用它,会发生什么“可能”。我希望找出如何用核心软件解决问题,而不是第 3 方解决方案。如果 ShowSQL 不显示更新,它看起来确实是一个错误。
标签: vb.net visual-studio-2010 nhibernate fluent-nhibernate