6

これは簡単なはずですが、IFブロック内の行につまずいてしまいます。その行のエラーは

「タイプ'System.Linq.IQueryable[Patient]'を'System.Data.Entity.DbSet[Patient]'に暗黙的に変換できません。明示的な変換が存在します(キャストがありませんか?)」

さまざまな拡張機能(、、、など)を追加してみAsQueryable()ましたがToList()、役に立ちませんでした。AsEnumerable().Contains()

ここで何が欠けていますか?このプロジェクトは、MVC4Betaと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());

}
4

2 に答える 2

12

患者を明示的に宣言するIQueryable<Patient>

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

またはそれを呼び出しますAsQueryable

var patients = this.db.Patients.AsQueryable();
于 2012-05-09T15:21:48.250 に答える
5

のタイプを変更するだけで、次のpatientsように機能します。

IQueryable<Patient> patients = this.db.Patients;
于 2012-05-09T15:21:32.473 に答える