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

时间:2012-05-09 15:16:41

标签: asp.net-mvc entity-framework .net-4.0

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

  

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

我尝试在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());

}

2 个答案:

答案 0 :(得分:12)

明确将患者声明为IQueryable<Patient>

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

或致电AsQueryable

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

答案 1 :(得分:5)

您只需更改patients的类型即可实现此功能:

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