0

我正在尝试编写一个 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。将表达式中的布尔值更改为对象后,我仍然收到错误消息:

如果我这样访问它:

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

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

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

谢谢

4

0 回答 0