【发布时间】:2012-03-08 23:44:47
【问题描述】:
假设我有三个简单的表
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,并且学生名无法识别。
谢谢。
【问题讨论】:
标签: nhibernate queryover