【发布时间】:2013-12-05 12:28:59
【问题描述】:
我的存储库中的方法与服务层中的调用方法之间存在兼容性问题。
我的存储库类中的方法如下所示:
public TEntity Single(Expression<Func<TEntity, bool>> predicate)
{
// Code left out
}
然后我的服务层中调用上述方法的方法如下所示:
public TDTOEntity Single(Expression<Func<TDTOEntity, bool>> predicate)
{
return repository.Single(predicate).ProjectedAs<TDTOEntity>();
}
我得到的错误是:
无法从
System.Linq.Expressions.Expression<System.Func<TDTOEntity,bool>>到System.Linq.Expressions.Expression<System.Func<TEntity,bool>>
如何在这两个表达式之间进行转换?这样的事情有可能吗?
【问题讨论】:
-
很明显,
Funcdelegate 有不同的输入参数 -
这几乎是不可能的,因为您无法告诉编译器 TEntity 和 TDOTOEntity 如何关联。我认为可以通过反射重建表达式。不过,我不想在那个上面烫伤我的手指
标签: c# asp.net .net linq c#-4.0