nhibernate无法用LeftOuterJoin解析属性(仅在Visual Studio 2015中)
本文关键字:Visual 仅在 Studio 2015 属性 LeftOuterJoin nhibernate | 更新日期: 2023-09-27 18:18:06
我需要一些帮助,因为我不能真正解释这个。我们有一个半复杂的非hibernate查询:
var query = _tyreRepository.Session.QueryOver<Tyre>(() => tyreAlias)
.JoinQueryOver<Pattern>(() => tyreAlias.Pattern, () => patternAlias)
.JoinQueryOver<Brand>(() => patternAlias.Brand, () => brandAlias)
.JoinQueryOver<RimSize>(() => tyreAlias.RimSize, () => rimSizeAlias)
.JoinQueryOver(() => tyreAlias.SpeedIndex,
() => speedIndexAlias, JoinType.LeftOuterJoin);
在Visual Studio 2012中工作良好,我们最近升级到Visual 2015,现在这个查询不起作用;当你在速度索引上使用where时:
query.Where(() => speedIndexAlias.SpeedKm >= speedKms);
否则查询正常。
花了很长时间调试回滚代码,没有任何效果。然后我们得到了相同的项目,它在visual studio 2012 works fine。我们不知道为什么当我们在visual studio 2015中编译这个项目时,这个查询不再工作(对查询没有任何更改)。
我真的很喜欢2015年所有的新语言变化,但是当我们在visual studio 2015中编译代码时,我们的网站崩溃了…
好吧,我确实找到了一个解决方案。由于visual studio 2015中的c# Roslyn编译器存在问题,您需要将nhibernate升级到最新版本。不幸的是,看起来旧版本的nhibernate根本没有修复这个问题。
https://nhibernate.jira.com/browse/nh - 3795所以如果你想使用visual studio 2015并且你使用nhibernate,你现在必须升级nhibernate。必须建立4.04.4000,我可以确认与流利的2.0.3工作