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

6
这应该很简单,但我在IF语句块内的那行代码上遇到了问题。该行的错误是:
"Cannot implicitly convert type 'System.Linq.IQueryable[Patient]' to 'System.Data.Entity.DbSet[Patient]'. An explicit conversion exists (are you missing a cast?)"
我尝试在.Contains()后附加各种扩展(如AsQueryable(),ToList(),AsEnumerable()等),但无济于事。
我在这里缺少什么?该项目使用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
问题不应该是“如何将此DbSet<Patient>转换为IQueryable<Patient>”吗? - Christopher J. Grace
2个回答

12

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

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

或者对它调用AsQueryable

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

5
您可以只需更改patients的类型即可使其正常工作:
IQueryable<Patient> patients = this.db.Patients;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接