Möglichkeiten zu nutzen, Func T, bool, während der Verwendung einer LINQ-Repository

Fand ich viele Beispiele von generischen repository verwenden von LINQ to SQL. Allerdings gibt es nicht genügend Beispiele darüber, wie diese Funktionen aufrufen. Können Sie bitte ein Beispiel zur Verwendung der folgenden Funktionen, die von einem client?

Hinweis: Meine Frage ist über die Verwendung von Func T,bool. Was sind die Möglichkeiten es zu benutzen?

Hinweis: das Konto ist eine Einheit.

class MyRepository<T> : IRepository<T> where T : class
{
    ..........

    public IEnumerable<T> FindAll(Func<T,bool> predicate)
    {
        return Context.GetTable<T>().Where(predicate);
    }

    public T FindByID(Func<T,bool> predicate)
    {
        return Context.GetTable<T>().SingleOrDefault(predicate);
    }
}

BEARBEITEN

Basierend auf der Antwort, ich habe es wie folgt;

 public RepositoryLayer.Account FindFirstAccount()
    {
        Func<RepositoryLayer.Account, bool> predicate = (p => p.AccountNumber == 1);
        List<RepositoryLayer.Account> accList =  (accountRepository.FindAll(predicate)).ToList();
        return accList[0];
    }

Hinweis: Die Liste RepositoryLayer.Konto accList = (Liste RepositoryLayer.Konto) accountRepository.FindAll(Prädikat); wird nicht funktionieren

  • nur ein detail : wenn Context.GetTable<T> gibt ein IQueryable<T> die parameter von FindAll sollte ein Expresson<Func<T, bool>>
InformationsquelleAutor LCJ | 2012-06-21
Schreibe einen Kommentar