传递顺序子句作为表达式

时间:2013-05-31 21:40:42

标签: entity-framework

我正在尝试编写一个get all函数并传入where和order表达式来获取我的分页网格视图的记录:

    public virtual IList<Customer> GetAll(Expression<Func<Customer, bool>> orderClause, Expression<Func<Customer, bool>> whereClause, int takeItems, int skipItems, bool descendingOrder = false)
    {
        if (descendingOrder)
        {
            return Accessor.Current.WCDataClassesDataContext.Customers.AsNoTracking().OrderByDescending(orderClause).Where(whereClause).Skip(skipItems).Take(takeItems).ToList();
        }
        else
        {
            return Accessor.Current.WCDataClassesDataContext.Customers.AsNoTracking().OrderBy(orderClause).Where(whereClause).Skip(skipItems).Take(takeItems).ToList();
        }
    }

但是我在order子句中遇到错误,它无法从int转换为bool。将表达式中的bool更改为object后仍然出现错误:

如果我这样访问它:

GetAll(o =&gt; o.CustomerID,j =&gt; j.CustomerID!= 20,10,0);

错误:“LINQ to Entities仅支持转换EDM原语或枚举类型”

对此错误的任何建议以及如何解决此问题?

由于

0 个答案:

没有答案