我有一个场景,其中一个方法将采用Func< T, bool >类型的谓词,因为类型 T 是暴露给外部世界的谓词,但是当实际使用该谓词时,我需要该方法来调用另一个方法采用Func< U, bool >其中 T 的属性映射到 U 的属性。
一个更具体的例子是:
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 是由模型创建的实体框架类(DB 优先)。
谢谢!