我在我的应用程序中使用 LinqKit.dll 来执行Linq To Entity操作,示例如下:
qry = _articleRepo.GetItemsByCulture(Thread.CurrentThread.CurrentCulture.Name)
.AsExpandable().Where(x => x.Approved && isInCategory(x.CategoryID, category.CategoryID));
Func<string, int, bool> isInCategory = (x, y) =>
{
IQueryable<string> list = x.Split(',').AsQueryable();
//Except
//x.Except(_);
return list.Any(z => z == y.ToString());
};
我遇到了错误:
System.InvalidCastException: 无法将类型为“System.Linq.Expressions.FieldExpression”的对象强制转换为类型“System.Linq.Expressions.LambdaExpression”。
但是,如果删除isInCategory(x.CategoryID,category.CategoryID),应用程序就可以正常运行。
请问你能帮我吗?
isInCategory
不是一个本地变量,那么你会得到那个错误。如果它不是,那么在qry
行之前添加一行代码,比如说var expression = isInCategory;
,然后在qry
行中使用expression
。 - DCShannon