任何人都可以解释什么是背后的nHibernate QueryOver没有抛出异常,当没有使用的类映射?比方说,我有一个FakeClass类,没有定义映射,下面的代码毫无例外地执行。nhibernate QueryOver在映射丢失时不抛出异常
var result = session.QueryOver<FakeClass>()
.Where(x => x.Name == "SomeName").List();
任何人都可以解释什么是背后的nHibernate QueryOver没有抛出异常,当没有使用的类映射?比方说,我有一个FakeClass类,没有定义映射,下面的代码毫无例外地执行。nhibernate QueryOver在映射丢失时不抛出异常
var result = session.QueryOver<FakeClass>()
.Where(x => x.Name == "SomeName").List();
以及它的一个报告的bug:https://nhibernate.jira.com/browse/NH-2829
它仍然没有修复。确实非常烦人的错误。 –
并且至2017年和NH5.0.0仍未修复 – quetzalcoatl
FakeClass是否作为数据库中的表存在?如果是这样,我会认为Fluent的自动映射功能会根据设计映射到它。
没有没有fakeclass表..我有超过15K类型在我的测试域,只有477抛出异常时,在表达式中使用:session.CreateCriteria(type).List(); – wiero
岂不单元测试有助于你在这里。我明白它不是你正在寻找的答案,但是单元测试会挑选这个答案。 – Rippo
这是一个很难找到的错误,实际上在两周内我正在开发一个项目,其中一部分是意外工作的。单元测试可能是检测这类错误的正确方法,但我认为这种测试将不再称为单元 - 只是自动的(在我看来)。映射文件存在于另一个程序集中,只是没有正确地连接到休眠配置。不良行为表明我们在代码或配置中创建了一个bug,并且我们也没有使用Get which throws exception。所以案件并非如此简单。 – wiero
我也迷失方向,因为如果它是一个在nhibernate中的错误,真的很奇怪它到目前为止还没有被发现和修复,但是如果它不是我没有看到这个“功能”的任何好处。 – wiero