2
假設我有三個簡單的表格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
而已。
如何寫這個嗎?我已經在這一個多小時嘗試不同的東西,但它始終是選擇錯誤了,說NHibernate.QueryException: could not resolve property
和studentName無法識別。
謝謝。
優秀!那工作..嗯..所以''withAlias''只能用於Transform? – LocustHorde 2012-03-08 15:37:03
另外,請問我現在該如何訂購這位''studentAlias.Name''? – LocustHorde 2012-03-08 15:37:20
我希望我可以多次投票。 – LocustHorde 2012-03-08 15:37:31