2012-05-09 27 views
6

Esto debería ser sencillo, pero me estoy tropezando en la línea dentro del bloque IF. El error en esa línea es¿Cómo convierto este IQueryable <Patient> a DbSet <Patient>?

"No se puede convertir implícitamente el tipo 'System.Linq.IQueryable [Paciente]' a 'System.Data.Entity.DbSet [Paciente]'. Existe una conversión explícita (que son falta un yeso?)"

me trataron añadiendo una variedad de extensiones (AsQueryable(), ToList(), AsEnumerable(), etc.) después de .Contains() en vano.

¿Qué me falta aquí? Este proyecto es construir usando la Beta MVC 4 y 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()); 

} 

Respuesta

12

Declarar pacientes explícitamente como IQueryable<Patient>

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

O llame al AsQueryable en él:

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

Sólo puede cambiar el tipo de patients para hacer este trabajo:

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