6

这应该很简单,但我在 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());

}
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 回答