这应该是直截了当的,但我在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());
}
答案 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;