这是我的情况:

 public IEnumerable<ISuperMerc> getSuperMercTree(string IDLanguage)
 {

      SuperMercModel SMer = null;
      SuperMercDescriptionModel descrSMer = null;
      MercModel Merc = null;
      MercDescriptionModel descrMerc = null;

      var qOver = _HibSession.QueryOver<SuperMercModel>(() => SMer)
                .JoinAlias(() => SMer.DescriptionsSM, () => descrSMer,JoinType.LeftOuterJoin)
                    .Where(() => descrSMer.IDLanguage == IDLanguage)
                .JoinAlias(() => SMer.Merc, () => Merc,JoinType.LeftOuterJoin)
                    .JoinAlias(() => Merc.DescriptionsMer, () => descrMerc,JoinType.LeftOuterJoin)
                        .Where(() => descrMerc.IDLanguage == IDLanguage)
                .OrderByAlias(() => SMer.ID).Asc
                .ThenByAlias(() => descrMerc.Description).Asc
                .Future<SuperMercModel>();

      return qOver;

 }

我遇到以下错误



奇怪的是,Description字段在MercDescriptionModel类中,而不在SuperMercModel类中。

我正在使用别名创建一个多联接和多顺序按查询。

最佳答案

如果将OrderByAliasThenByAlias更改为常规OrderByThenBy子句,则原始代码应在不使用SQL的情况下工作。我遇到了同样的问题,并为我解决了这个问题。

09-05 06:11