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中编译代码时,我们的网站崩溃了…

nhibernate无法用LeftOuterJoin解析属性(仅在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工作