2011-05-16 3 views
0

veut pouvoir faire quelque chose comme ceci ci-dessous. Mais j'ai un problème parce que la méthode GetStudentByName ne sait pas quel type de données est.Diviser les requêtes LINQ to Entity en différentes méthodes

Je suis capable d'écrire "data = data.Where (s => s.name ==" Some name ");" sans aucun problème. Mais comment puis-je le diviser en différentes méthodes?

private IQueryable GetStudents() 
    { 
     var data = from a in db.Anvandning 
        select a; 
     return data; 
    } 
    public IQueryable GetStudentByName(string name) 
    { 
     var data = GetStudents(); 

     data = data.Where(s => s.name == name);  <-- Error occurs 
     return data; 
    } 

Répondre

1

Vous devez utiliser IQueryable<T> au lieu de IQueryable, par exemple

private IQueryable<Student> GetStudents() 
{ 
    var data = from a in db.Anvandning 
       select a; 
    return data; 
} 

public IQueryable<Student> GetStudentByName(string name) 
{ 
    var data = GetStudents(); 

    data = data.Where(s => s.name == name); 
    return data; 
} 

Notez que ces méthodes peuvent être écrites plus simplement:

private IQueryable<Student> GetStudents() 
{ 
    return db.Anvandning.Select(x => x); 
} 

public IQueryable<Student> GetStudentByName(string name) 
{ 
    return GetStudents().Where(s => s.name == name); 
} 
Questions connexes