获取 NHibernate 中的命名查询列表

Posted

技术标签:

【中文标题】获取 NHibernate 中的命名查询列表【英文标题】:Get list of named queries in NHibernate 【发布时间】:2010-06-05 14:16:01 【问题描述】:

我的 NHibernate 项目中有十几个命名查询,我想在单元测试中针对测试数据库执行它们,以确保语法仍然匹配不断变化的域/数据库模型。目前,我对获取并执行查询的每个命名查询都有一个单元测试,例如:

IQuery query = session.GetNamedQuery("GetPersonSummaries");
var personSummaryArray = query.List();
Assert.That(personSummaryArray, Is.Not.Null);

这很好用,但我希望有一个单元测试循环遍历所有命名查询并执行它们。有没有办法发现所有可用的命名查询?

谢谢 丹

【问题讨论】:

【参考方案1】:

Configuration.NamedQueries 有一个命名查询列表(它是一个 IDictionary,键是查询名称)

当然,您需要访问Configuration 实例,或者将该列表保存在某处。

【讨论】:

仅供参考,配置对象还有一个 NamedSqlQueries 属性(这是我真正需要的)。

以上是关于获取 NHibernate 中的命名查询列表的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate中的命名查询不等于运算符

使用 PostgreSQL 和 NHibernate 的命名查询

nHibernate 命名查询不返回所有结果

列错误中的冒号 ':' - 并非所有命名参数都已在 Nhibernate 中设置?

NHibernate - 如何使用参数值记录命名参数化查询?

NHibernate 命名查询和二级缓存