2012-05-09 28 views
6

これは簡単なはずですが、私はIFブロック内の行にトリップしています。そのライン上のエラーがこのIQueryable <Patient>をDbSet <Patient>に変換するにはどうすればよいですか?

ある「暗黙のうちにあなたが(明示的な変換が が存在する。 『System.Data.Entity.DbSet [患者]』にタイプ 『System.Linq.IQueryable [患者]』に変換できませんキャストを行方不明?)」

私は無駄に.Contains()後)など、拡張子(AsQueryable()ToList()AsEnumerable()の様々なを追加しようとしました。

私はここで何が欠けていますか?

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

答えて

12

が明示的にIQueryable<Patient>

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

として患者を宣言します。このプロジェクトは、この作品を作るためにあなただけpatientsの種類を変更することができます

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()); 

} 
5

MVC 4ベータ版とEF4を使用して構築されまたはAsQueryableに電話する:

var patients = this.db.Patients.AsQueryable(); 
関連する問題