C# nhibernate无法使用LeftOuterJoin解析属性(仅在Visual Studio 2015中)

C# nhibernate无法使用LeftOuterJoin解析属性(仅在Visual Studio 2015中),c#,visual-studio,visual-studio-2012,nhibernate,visual-studio-2015,C#,Visual Studio,Visual Studio 2012,Nhibernate,Visual Studio 2015,我需要一些帮助,因为我无法真正解释这一点。我们有一个半复杂的nhibernate查询: var query = _tyreRepository.Session.QueryOver<Tyre>(() => tyreAlias) .JoinQueryOver<Pattern>(() => tyreAlias.Pattern, () => patternAlias) .JoinQueryOver<Brand>(() =&g

我需要一些帮助,因为我无法真正解释这一点。我们有一个半复杂的nhibernate查询:

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);
否则查询工作正常

花了很长时间调试回滚代码,但没有任何效果。然后我们得到了同样的项目,并在VisualStudio2012中完成了它。我们无法解释为什么在visual studio 2015中编译项目时,此查询不再有效(查询没有任何更改)


我真的很喜欢2015年所有新的语言变化,但当我们在visual studio 2015中编译代码时,我们的网站崩溃了…

好的,我确实找到了解决方案。由于visual studio 2015中的C#Roslyn编译器出现问题,您需要将nhibernate升级到最新版本。不幸的是,nhibernate的旧版本根本没有解决这个问题的方法


因此,如果您想使用visual studio 2015并使用nhibernate,您必须当前升级nhibernate。必须是build 4.04.4000,我可以确认它与fluent 2.0.3兼容。

他们发布了3个版本的nhibernate来解决这个问题,因此您可以更新您使用的版本。但是,请注意,他们“忘记”更新3.3.5->中的程序集文件版本。如果将dll称为从属程序集,则可能会出现一些问题。
query.Where(() => speedIndexAlias.SpeedKm >= speedKms);