我想在DBSet
的EntityFramework上运行LINQ语句。
由于我在我的应用程序中使用了不同类型的对象(不是我的实体的类型),我需要改变表达式,使它包含EntityFramework对象而不是我的应用程序对象。
我在这个问题中使用了答案: Mutating the expression tree of a predicate to target another type
但我无法找到如何实际使用结果...(作为Predicate
或Func
等)
我已经看到在Expression中曾经有一个Compile方法,但它不再存在了。
有人可以向我解释如何做到这一点吗?
编辑:
我想使用这样的界面:
public interface ICRUDFacade<T>
{
bool Create(T source);
IEnumerable<T> Read(Predicate<T> exp);
bool Update(T source);
bool Delete(T source);
}
并在EntityFramework门面的实现中
将T
转换为可插入DbSet
的对象。
当我在Read
方法中运行LINQ表达式时,我将接收实体对象,然后将它们转换回T