【问题标题】:Automated profiling/unit testing the NHibernate behaviors自动分析/单元测试 NHibernate 行为
【发布时间】:2011-05-23 19:50:28
【问题描述】:

几个月来我一直在使用 NHibernate,我发现它非常强大,但对我来说,这是一种有时会伤害你的工具。在很多情况下,映射、LINQ 查询或使用我的实体的任何代码中相对简单的更改都会导致意外行为。我最“壮观的成功”是进行 N+1 次删除和插入的读取操作,因为我是在代码中而不是在数据库中对组件集合进行排序。

感谢NHProf,我可以跟踪一些类似的问题,但我觉得我不能确定在重构或小的需求更改后,我的数据访问层仍然能够正确且高效运行。每次更改后手动测试/分析它有点痛苦。我在这里期望的是某种单元测试NHibernate的行为幕后的方法,即生成什么SQL,完成了多少查询,有多少实体已加载,加入了多少表等。

我知道这可能有点偏离 ORM 的主要目的,但对于需要表现良好的应用程序,在我看来,底层知识比抽象更重要。

有没有类似这个想法的实现?如何自动分析我的 NHibernate 应用程序?

【问题讨论】:

    标签: unit-testing nhibernate profiling nhprof


    【解决方案1】:

    我为此使用的东西是Statistics

    您可以从会话工厂获取IStatistics 实例,并获得很多性能指标,包括执行的查询数量、缓存未命中、执行时间等等。

    有了这个,您可以设置单元/集成测试来执行足够的调用,并验证这些指标是否在预期的参考参数内。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2012-02-25
      • 2013-03-19
      相关资源
      最近更新 更多