2013-12-18 48 views
6

將數據從數據庫發送到Controller中的列表時遇到問題。我是C#和MVC的新手,所以任何幫助都會有用!代碼如下無法將類型'System.Linq.IQueryable <int>'轉換爲'int'

public static List<FilterTree> GetAllUsers() 
    { 
     FilterTreeDBContext db = new FilterTreeDBContext(); 
     var userList = new List<FilterTree>(); 
     var device = new FilterTree(); 
     //This is the line where I get the error 
     device.ID = from a in db.FilterTree select a.ID; 

     userList.Add(device); 
     return userList; 
    } 

謝謝&節日快樂! :)

+0

什麼是問題官員? – Max

+0

FilterTree是你的dbset。所以從你的查詢中得到一個整數列表。 FilterTree中的實例變量ID的類型是什麼?我想這是從你得到的錯誤中顯而易見的。您正嘗試將一個列表(Iqueryable )存儲到一個int字段中。我希望這個分析能幫助你解決你的問題。 – AbhinavRanjan

+0

感謝@AbhinavRanjan的解釋! – Cristian

回答

12
device.ID = (from a in db.FilterTree select a.ID).First(); 

Linq查詢很懶,和您所請求的值後,才

BTW不要忘了關閉的背景下,否則你會泄漏連接

using (var db = new FilterTreeDBContext()) 
{ 
    ... 
    return userList; 
} 
+0

謝謝先生......它的工作:) – Cristian

+2

@ Mihai-CristianRotariu,這樣的情況下,確保接受它作爲時間已過的答案。 –

2

就執行因爲框架知道查詢可能有多個對象,所以像這樣使用它:

device.ID = (from a in db.FilterTree select a.ID).FirstOrDefault(); 
相關問題