这是我的情况:
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类中。
我正在使用别名创建一个多联接和多顺序按查询。
最佳答案
如果将OrderByAlias
和ThenByAlias
更改为常规OrderBy
和ThenBy
子句,则原始代码应在不使用SQL的情况下工作。我遇到了同样的问题,并为我解决了这个问题。