6
Ho un metodo come questo:Impossibile convertire espressioni lambda in tipo delegato
public ICollection<T> GetEntitiesWithPredicate(Expression<Func<T, bool>> predicate)
{
// ...
}
faccio una chiamata di metodo in un'altra classe come
service.GetEntitiesWithPredicate(x => x.FoobarCollection.Where(y => y.Text.Contains(SearchText)));
ma ottengo sempre questo errore:
Lambda expression cannot be converted to '<typename>' because '<typename>' is not a delegate type
Cosa devo cambiare per ottenere questo lavoro?
Edit:
Io uso Entity Framework 6 e se uso Qualsiasi() invece di Dove(), ho sempre arrivare solo 1 risultato indietro ... voglio passare l'espressione al mio EF-implementazione:
public ICollection<T> GetEntriesWithPredicate(Expression<Func<T, bool>> predicate)
{
using (var ctx = new DataContext())
{
return query.Where(predicate).ToList();
}
}
probabilmente dire 'Qualsiasi()' invece di 'Dove()'. Il tuo 'Func' deve restituire 'bool' ma' Where' sta restituendo 'IEnumerable '. –
haim770
quelli non sono compatibili. –
Sei sicuro di voler dire 'GetEntitiesWithPredicate (Espressione> predicato)' e non solo 'GetEntitiesWithPredicate (Func predicato)'? Perché hai bisogno dell'espressione? –