2012-05-09 59 views
6

這應該是直截了當的,但我正在IF塊內的線上絆倒。在該行的錯誤是如何將此IQueryable <Patient>轉換爲DbSet <Patient>?

「無法隱式轉換類型‘System.Linq.IQueryable [病人]’以 ‘System.Data.Entity.DbSet [患者]’。一個顯式轉換存在 (你缺少強制轉換?)」

我試圖.Contains()後附加了各種擴展(AsQueryable()ToList()AsEnumerable()等)無濟於事。

我在這裏錯過了什麼?該項目是建立一個使用MVC 4 Beta版和EF4

public ActionResult SearchIndex(string searchString) 
{ 
    var patients = this.db.Patients; 

    if (!String.IsNullOrEmpty(searchString)) 
    { 
     patients = patients.Where(p => p.LastName.Contains(searchString)); 
    } 

    return View(patients.ToList()); 

} 

回答

12

聲明病人明確爲IQueryable<Patient>

IQueryable<Patient> patients = this.db.Patients; 

或者撥打AsQueryable就可以了:

var patients = this.db.Patients.AsQueryable(); 
5

你可以改變的patients類型,使這項工作:

IQueryable<Patient> patients = this.db.Patients; 
相關問題