我正在尝试编写一个 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 基元或枚举类型”
有关此错误的任何建议以及如何解决此问题?
谢谢