c# - System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda 抛出 System.NotSupportedException
问题描述
尝试使用 System.Linq.Dynamic.Core 库中可用的 ParseLmabda 方法。当我执行以下简单示例时。
using (var context = new EntityContext())
{
Expression<Func<Customer, bool>> e1 = System.Linq.Dynamic.Core.DynamicExpressionParser
.ParseLambda<Customer, bool>(null, true, "City = @0", "London");
var customers = context.Customers.Where("@0(it)", e1).ToList();
}
它引发以下异常。
System.NotSupportedException: 'The LINQ expression node type 'Invoke' is not supported in LINQ to Entities.'
知道我做错了什么吗?
解决方案
您是否尝试过以下代码:
Expression<Func<Customer, bool>> e1 = DynamicExpressionParser.ParseLambda<Customer, bool>(null, true, "City = @0", "London");
var customers = Customers.Where(e1).ToList();
更新 (2020-06-01)
实际上,下面的代码应该可以正常工作。
var e1 = DynamicExpressionParser.ParseLambda<Customer, bool>(new ParsingConfig(), true, "City = @0", "London");
var e2 = DynamicExpressionParser.ParseLambda<Customer, bool>(new ParsingConfig(), true, "c => c.CompanyName != \"test\"");
var customers = context.Customers.ToList().AsQueryable().Where("@0(it) and @1(it)", e1, e2);
推荐阅读
- python - JSON 数据中的访问字段
- c++ - 支持比较两个对象引用的等式运算符?
- r - 如何启动和停止 invalidateLater 函数
- jquery - 在 fancyBox v3 上启用全屏 Vimeo 视频按钮
- reactjs - 什么是 props.children?
- ada - Ada 将一个任务准备好从入口点终止
- python - 当输入停止时停止在远程服务器上跟踪文件使用 paramiko 和 Flask
- javascript - 使用干净的 JavaScript 堆配置文件在长时间运行的 THREE.js 应用程序中的 GPU 崩溃
- python - 使用python合并相似的xml文件
- java - JavaFX TableView 更新单元格,不更新对象值