为什么session.CreateCriteria(typeof(...))对于未映射的类型失败?

时间:2010-10-27 13:45:59

标签: c# nhibernate nhibernate-mapping createcriteria

对于我创建的每个实体,我编写一个单元测试,只是从数据库加载一条记录,以查看查询是否有效,并且可以正确地在实体上设置数据。您可以将其视为基本映射的单元测试。这还应该确认该类型存在映射文件并设置为嵌入式资源。

测试看起来像这样(测试驻留在通用基类中):

session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).List();

我没有做任何断言,我只是想看看这行是否有效而没有抛出异常。

现在在一个案例中,我忘记将映射文件设置为嵌入式资源,但测试仍然有效。但是没有向数据库发送任何查询,因此它基本上没有做任何事情。

为什么对于未映射的类型,CreateCriteria()或List()失败?我该如何测试该特定要求?

编辑:如果发现以下行确实抛出异常,但仍然想知道第一种情况

session.CreateCriteria(typeof(TEntity)).SetMaxResults(1).Future<TEntity>().ToArray()

1 个答案:

答案 0 :(得分:2)

我不知道,但显然在NHibernate,他们也不知道。有关此问题报告的错误,请参阅https://nhibernate.jira.com/browse/NH-2183。他们还在努力。