タイプ T は外界に公開されているため、メソッドがタイプFunc< T, bool >の述語を取るシナリオがありますが、実際にその述語を使用するときは、そのメソッドが別のメソッドを呼び出す必要があります。 T のプロパティが U のプロパティにマップされるFunc< U, bool >を取り込みます。
より具体的な例は次のようになります。
public IEnumerable<ClientEntity> Search(Func<ClientEntity, bool> predicate)
{
IList<ClientEntity> result = new List<ClientEntity>();
// Somehow translate predicate into Func<Client, bool> which I will call realPredicate.
_dataFacade.Clients.Where(realPredicate).ToList().ForEach(c => result.Add(new ClientEntity() { Id = c.Id, Name = c.Name }));
return result.AsEnumerable();
}
それは可能でしょうか?
ClientEntity は私が独自に定義した POCO クラスであり、Client はモデルによって作成された Entity Framework クラス (DB が最初) であることに注意してください。
ありがとう!