2011-09-16 61 views
0

我有一個mant-to-many關係模型在學生和教授(_students_selected)之間的數據庫中(橋表)我曾經將它建模爲多對多的關係,即教授有許多學生。流利的nhibernate:查詢多對多的實體與'any'關鍵字的等效

HasManyToMany(x => x.Students) 
    .Table("_students_selected").ChildKeyColumn("student_key").ParentKeyColumn("professor_key"); 

public class Professor  
{ 
     private IList<Students> _students; 
     public virtual Student Students 
     { 
      get { return _students; } 
      set { _students = value; } 
     } 
} 

我無法查詢過教授的學生,我都試過但以下NHibernate的不承認任何在列表中進行篩選。什麼相當於任何?

_unitOfWork.Session.QueryOver<Professor>() 
    .Where(x => x.Students.Any(i => i.Id.IsIn(childStudentList))).List(); 
+0

你試過'.WithSubquery.Where(X => X。 Students.Any(i => i.Id.IsIn(childStudentList)));'? – Firo

+0

嗨,感謝您的回覆,我剛剛嘗試了以下內容:_unitOfWork.Session.QueryOver ().WithSubquery.Where( x => x.Students.Any(i => i.Id.IsIn(childStudentList)) )的.List();和即時獲取以下錯誤'無法投入'System.Linq.Expressions.MethodCallExpressionN'類型的對象鍵入'System.Linq.Expressions.BinaryExpression''。 –

回答

相關問題