2013-07-30 83 views
3

以下例外飛行LINQ到實體無法識別方法「布爾包含(的Int32)」方法

LINQ實體無法識別方法「布爾 包含(的Int32)」方法,和該方法不能將 轉換成商店表達式。

試圖執行下面的查詢

List<int> studentIDs = Common.getFilterStudents(); 
var query = from a in studentTable 
      where studentIDs.Contains(a.StudentID) 
      select a; 

如何過濾使用studentIDs列表查詢?

+0

請參閱我編輯的代碼,我修改了學生ID的來源 – User2012384

+2

您使用的是哪個版本的實體框架? – takemyoxygen

+0

你完全確定,'studentIDs'的類型是'List '? –

回答

6

這是不可能在你的EF版本使用Contains,因爲在EF 4.無論是加入了Contains支持升級EF版本(那麼你的代碼將沒有任何問題的工作),或使用類似manual expression building

var query = context.studentTable.Where(
    BuildContainsExpression<Student, int>(s => s.StudentID, studentIDs)); 
+1

有一種方法可以書寫您想要返回的答案。 –

相關問題