【发布时间】:2011-05-23 19:50:28
【问题描述】:
几个月来我一直在使用 NHibernate,我发现它非常强大,但对我来说,这是一种有时会伤害你的工具。在很多情况下,映射、LINQ 查询或使用我的实体的任何代码中相对简单的更改都会导致意外行为。我最“壮观的成功”是进行 N+1 次删除和插入的读取操作,因为我是在代码中而不是在数据库中对组件集合进行排序。
感谢NHProf,我可以跟踪一些类似的问题,但我觉得我不能确定在重构或小的需求更改后,我的数据访问层仍然能够正确且高效运行。每次更改后手动测试/分析它有点痛苦。我在这里期望的是某种单元测试NHibernate的行为幕后的方法,即生成什么SQL,完成了多少查询,有多少实体已加载,加入了多少表等。
我知道这可能有点偏离 ORM 的主要目的,但对于需要表现良好的应用程序,在我看来,底层知识比抽象更重要。
有没有类似这个想法的实现?如何自动分析我的 NHibernate 应用程序?
【问题讨论】:
标签: unit-testing nhibernate profiling nhprof