缺少映射时nhibernate QueryOver未引发异常

缺少映射时nhibernate QueryOver未引发异常,nhibernate,queryover,Nhibernate,Queryover,有人能解释nHibernate QueryOver在使用的类没有映射时不抛出异常背后的想法吗?假设我有一个FakeClass类,并且没有定义映射,下面的代码毫无例外地执行 var result = session.QueryOver<FakeClass>() .Where(x => x.Name == "SomeName").List(); var result=session.QueryOver() .Where(x=>x.Nam

有人能解释nHibernate QueryOver在使用的类没有映射时不抛出异常背后的想法吗?假设我有一个FakeClass类,并且没有定义映射,下面的代码毫无例外地执行

var result =  session.QueryOver<FakeClass>()
                     .Where(x => x.Name == "SomeName").List();
var result=session.QueryOver()
.Where(x=>x.Name==“SomeName”).List();

FakeClass是否作为表存在于数据库中?如果是这样的话,我认为Fluent的自动映射功能会按照设计映射到它。

这是一个报告的错误:


希望它不会这样结束:

单元测试在这里对您没有帮助吗。我知道这不是你想要的答案,但是一个单元测试会发现这一点。问题是这是一个很难找到的bug,事实上,在过去的两周里,我正在开发一个项目,其中一个部分是偶然工作的。单元测试可能是检测此类错误的正确方法,但我认为这种测试将不再被称为单元测试,而是自动测试(在我看来)。映射文件存在于另一个程序集中,并且未正确附加到hibernate配置。不良行为表明,我们在代码或配置中创建了一个bug,而且我们没有使用引发异常的Get。所以情况就不那么简单了。我也很迷惑,因为如果它是nhibernate中的一个bug,那么到目前为止它还没有被发现和修复,这真的很奇怪,但是如果不是,我看不到这个“特性”的任何好处。不,没有fakeclass表。。我的测试域中有超过15k个类型,在表达式session.CreateCriteria(type.List())中使用时,只有477个抛出异常;它还没有修好。确实非常讨厌的bug.aa,到2017年和NH5.0.0时仍未修复