2013-04-15 112 views
11

我已經看過這裏的各種解決方案,但它們都不適合我,可能是因爲我太新了所有這一切,我在黑暗中摸索了一下。在下面的代碼中,對象「約會」包含一些基本的LDAP信息。從這些對象的列表中,我希望能夠根據員工ID獲得單個記錄。我希望這裏的代碼足以說明問題。 FTR,我嘗試了各種配方,包括嘗試使用和選擇。所有都會因上面標題中給出的錯誤而失敗。LINQ to Entities無法識別方法'System.String get_Item(System.String)'方法

IQueryable<appointment> query = null; 

foreach(var record in results) 
{ 
    BoiseStateLdapDataObject record1 = record; 
    query = db.appointments.Where(x => x.student_id == record1.Values["employeeid"]); 
} 

if (query != null) 
{ 
    var selectedRecord = query.SingleOrDefault(); 
} 

回答

21

嘗試移動員工ID走出查詢:

IQueryable<appointment> query = null; 

foreach(var record in results) 
{ 
    var employeeId = record.Values["employeeid"]; 
    query = db.appointments.Where(x => x.student_id == employeeId); 
} 

if (query != null) 
{ 
    var selectedRecord = query.SingleOrDefault(); 
} 
+0

感謝。這解決了錯誤。你能告訴我爲什麼它解決了嗎?或者這超出了這個論壇的範圍? – user2283231

+3

@ user2283231當您使用Linq to Entities時,表達式樹被傳遞給'Where'方法,然後分析並轉換爲SQL。 EF無法將索引器調用轉換爲SQL。這就是爲什麼傳遞平價值解決問題的原因。如果有幫助,請隨時接受答案:) –

+2

明白了。我覺得它「可以接受」。 :) – user2283231

相關問題