2016-08-30 141 views
0

我試圖返回一個列表來顯示我的所有內容,它們在一個表中,它們的id等於_id(在第一個if語句否則返回所有的),但我得到這個錯誤不能隱式地將類型'System.Linq.IQueryable'轉換爲'System.Collections.Generic.List

無法隱式轉換類型「System.Collections.Generic.List(Project1.Models.EF_Model.Phone_book)爲」 System.Collections.Generic.List( Project1.Models.EF_Model.Phone_BookEntities1)

,這裏是我的代碼

public List<Models.EF_Model.Phone_BookEntities1> Select(int? _id) 
{ 
     var Ref_Phone = new Models.EF_Model.Phone_BookEntities1(); 
     if (_id.HasValue) 
     { 
      return Ref_Phone.Phone_book.Where(p => p.Id == _id); //here error shows up 
     } 
     else 
     { 
      Ref_Phone.Phone_book.ToList(); 
     } 
} 

我嘗試添加該.ToList()沒有工作,我不知道該怎麼辦

回答

3

你需要返回,而不是Models.EF_Model.Phone_BookEntities1Phone_book列表,這是您的上下文類型:

public List<Models.EF_Model.Phone_book> Select(int? _id) 
{ 
    var Ref_Phone = new Models.EF_Model.Phone_BookEntities1(); 
    return id.HasValue? Ref_Phone.Phone_book.Where(p => p.Id == _id).ToList():Ref_Phone.Phone_book.ToList(); 

} 
+0

非常感謝你,能夠以IF的正常形式而不是內聯版本寫這篇文章嗎?或者它必須以行形式完成? –

+0

當然,你可以使用'if'子句來做到這一點。我這樣做是爲了縮短它 – octavioccl

0

只需卸下((Ref_Phone,把.ToList()上有LINQ表達式的結束。

+0

做每一件事情,但它不工作 –

+0

這不是非常有幫助 - 解釋正是爲什麼它不工作(編譯器錯誤,意想不到的結果等),或者我們無能爲力。 –

相關問題