使用变异表达式作为谓词

时间:2015-09-17 17:59:34

标签: c# entity-framework linq lambda linq-expressions

我想在DBSet的EntityFramework上运行LINQ语句。 由于我在我的应用程序中使用了不同类型的对象(不是我的实体的类型),我需要改变表达式,使它包含EntityFramework对象而不是我的应用程序对象。

我在这个问题中使用了答案: Mutating the expression tree of a predicate to target another type

但我无法找到如何实际使用结果...(作为PredicateFunc等) 我已经看到在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

0 个答案:

没有答案