私は3つの単純なテーブル nhibernate queryoverエイリアス列の選択方法は?
schedule
{
Student student { get; set;}
Teacher teacher { get; set;}
bool Deleted { get; set; }
}
Student
{
string Name { get; set; }
IList<schedule> TeacherMeetings {get; set; }
}
をしていると仮定し、教師を想定することは同じこと、名前と学生のスケジュールのリストを持っています。
私はスケジュールから、特定の教師のすべての学生名のリストを選択したいと思っています。私は条件やすべての質問を書くことができますが、生徒の名前だけを選ぶのは難しいです。ここで
は私の現在のクエリです:
DetachedCriteria dc = QueryOver.Of<Schedule>(() => sAlias)
.JoinAlias(() => sAlias.student,() => studentAlias)
.JoinAlias(() => sAlias.teacher,() => teacherAlias)
.Where(() => teacherAlias.MembershipGuid == teacherGuid)
.AndNot(() => sAlias.isDeleted)
//.Select(() => studentAlias.Name)
.SelectList(list => list
.SelectGroup(x => x.student.Name).WithAlias(() => studentAlias.Name))
.DetachedCriteria
;
私はすべてのselect
をコメントアウトした場合、右は右の表に結合して、プロファイラは、正しいものとして生成されたクエリを示し、唯一の、それはすべての上のすべての列を選択しますテーブル。
私はselect
の権利を得ることができない、私はstudent.Name
が必要です。
どうすればいいですか?私はこれを1時間以上別のものを試してみたことがありますが、それは常にエラーであり、それはNHibernate.QueryException: could not resolve property
と言って、そのstudentNameは認識できないという選択です。
ありがとうございました。
優秀!それはうまくいきます。だから、 '' withAlias''はTransformでのみ使われますか? – LocustHorde
また、この '' studentAlias.Name''でどのように注文しますか? – LocustHorde
私はこれを複数回投票することができれば幸いです。 – LocustHorde