2011-09-30 36 views
3

任何人都可以解释什么是背后的nHibernate QueryOver没有抛出异常,当没有使用的类映射?比方说,我有一个FakeClass类,没有定义映射,下面的代码毫无例外地执行。nhibernate QueryOver在映射丢失时不抛出异常

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

岂不单元测试有助于你在这里。我明白它不是你正在寻找的答案,但是单元测试会挑选这个答案。 – Rippo

+0

这是一个很难找到的错误,实际上在两周内我正在开发一个项目,其中一部分是意外工作的。单元测试可能是检测这类错误的正确方法,但我认为这种测试将不再称为单元 - 只是自动的(在我看来)。映射文件存在于另一个程序集中,只是没有正确地连接到休眠配置。不良行为表明我们在代码或配置中创建了一个bug,并且我们也没有使用Get which throws exception。所以案件并非如此简单。 – wiero

+0

我也迷失方向,因为如果它是一个在nhibernate中的错误,真的很奇怪它到目前为止还没有被发现和修复,但是如果它不是我没有看到这个“功能”的任何好处。 – wiero

回答

0

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

+0

没有没有fakeclass表..我有超过15K类型在我的测试域,只有477抛出异常时,在表达式中使用:session.CreateCriteria(type).List(); – wiero