2012-08-09 44 views
0

問題:返回的DBQuery以查看需要的IEnumerable

異常詳細信息:System.InvalidOperationException:傳遞到詞典中的模型項 是 類型的「System.Data.Entity.Infrastructure.DbQuery `1 [System.Int32]',但是這個 字典需要一個'migros.Models.State'類型的模型項。

我試圖做

我需要通過下面的LINQ查詢到視圖的結果。

using (var db = new migros_mockEntities1()) 
     { 
      var listOfIdeas = (from x in db.States select x.ID); 

      return View(listOfIdeas); 
     } 

觀要求IEnumerable,但似乎我不能LINQ查詢的結果轉換爲IEnumerable。 我正在使用實體框架數據庫第一種方法。

回答

1

問題是,您嘗試從using塊中返回ObjectQuery。 嘗試兌現你的目標設定

var listOfIdeas = (from x in db.States select x.ID).ToList(); 

而且,不要忘記,處理方面可能會非常棘手。 在你的情況下,var listOfIdeas = (from x in db.States select x.ID)只是一個查詢,只有當你開始迭代它時纔會運行。所以,如果上下文已經處理,你會得到一個異常,試圖使用listOfIdeas

+0

我得到一個異常,說我想傳遞一個System.Collections.Generic.List類型的對象,它需要一個類型System.Collections.Generic.IEnumerable – 2012-08-09 09:09:29

+0

張貼您的看法請發送 – 2012-08-09 09:15:54

+0

Eureka!就是這樣,這個觀點期待着我定義的一個類型的對象,而且我愚蠢的是,我正在向它發送一個int。 Thx尋求幫助。 – 2012-08-09 09:18:43