我在学生和教授 (_students_selected) 之间的数据库(带有桥接表)中建模了一个多对多关系,在我的实体中,我将其建模为一对多关系,即教授有一个学生。
HasManyToMany<Student>(Reveal.Member<Professor>("_students"))
.Table("_students_selected").ChildKeyColumn("student_key").ParentKeyColumn("professor_key");
public class Professor
{
private IList<Students> _students;
public virtual Student Student
{
get { return _students.FirstOrDefault(); }
}
}
上述方法在获取数据时有效,但是在查询教授时,我无法为学生添加 where 条件,因为实际数据已映射到私有支持字段 _students。我如何查询这个?下面的代码不起作用。
_unitOfWork.Session.QueryOver<Professor>().Where(i => i.Student.Id == 24).List();