私は、学生と教授(_students_selected)の間のデータベース(ブリッジテーブルを使用)でモデル化されたマントツーマンの関係を持っています。私の全体では、1対多の関係としてモデル化しています。つまり、教授には1人の学生がいます。
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(); }
}
}
上記はデータを取得するときに機能しますが、教授にクエリを実行する場合、実際のデータはプライベートバッキングフィールド_studentsにマップされているため、学生にwhere条件を追加できません。これをクエリするにはどうすればよいですか?以下のコードは機能しません。
_unitOfWork.Session.QueryOver<Professor>().Where(i => i.Student.Id == 24).List();