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();
        }
    }

しかし、注文句で int から bool に変換できないというエラーが発生しています。式の bool をオブジェクトに変更した後も、エラーが発生します。

次のようにアクセスすると:

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

エラー:「LINQ to Entities は、EDM プリミティブまたは列挙型のキャストのみをサポートしています」

このエラーに対する提案と、これを解決する方法はありますか?

ありがとう

4

0 に答える 0