LINQ to SQL を使用した汎用リポジトリの例を多数見つけました。ただし、これらの関数を呼び出す方法については十分な例がありません。クライアントが次の機能を使用する方法の例を教えてください。
注: 私の質問はFunc T,boolの使用に関するものです。それを使用する可能な方法は何ですか?
注: BankAccount はエンティティです。
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);
}
}
編集
応答に基づいて、次のように使用しました。
public RepositoryLayer.Account FindFirstAccount()
{
Func<RepositoryLayer.Account, bool> predicate = (p => p.AccountNumber == 1);
List<RepositoryLayer.Account> accList = (accountRepository.FindAll(predicate)).ToList();
return accList[0];
}
注: List RepositoryLayer.Account accList = (List RepositoryLayer.Account) accountRepository.FindAll(predicate); 動作しないでしょう