如何将此IQueryable <Patient>转换为DbSet <Patient>?

Joe*_*Joe 6 asp.net-mvc entity-framework .net-4.0

这应该是直截了当的,但我在IF块内的线上被绊倒了.该行的错误是

"无法将类型'System.Linq.IQueryable [Patient]'隐式转换为'System.Data.Entity.DbSet [Patient]'.存在显式转换(你是否错过了演员?)"

我试图追加了各种扩展功能(AsQueryable(),ToList(),AsEnumerable()后等),.Contains()都无济于事.

我在这里错过了什么?该项目使用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());

}
Run Code Online (Sandbox Code Playgroud)

nem*_*esv 12

明确宣布患者为 IQueryable<Patient>

IQueryable<Patient> patients = this.db.Patients;
Run Code Online (Sandbox Code Playgroud)

或者打电话AsQueryable给它:

var patients = this.db.Patients.AsQueryable();
Run Code Online (Sandbox Code Playgroud)


Nic*_*ler 5

您可以更改其类型patients以使其工作:

IQueryable<Patient> patients = this.db.Patients;
Run Code Online (Sandbox Code Playgroud)