c# - 从字符串构建表达式<Func<T,bool>>

标签 c# ef-code-first linq-to-entities expression

我有一个 Expression<Func<T,bool>>使用它过滤 Linq to entity 的变量查询:

Expression<Func<Person,bool>> predicate= new  Expression<Func<Person,bool>>();
predicate= t=>t.FirstName.Contains("A");
....
var result = _Context.Persons.Where(predicate).ToList();

我希望用户可以将他定义的谓词保存为文件或数据库中的字符串,以便下次使用。 所以我将谓词保存为 string :

string str = predicate.ToString();
SaveToDb(str);

有没有办法重建Expression<Func<T,bool>>从保存str

最佳答案

我建议您使用 Expression Tree Serializer开源项目。有了它,您可以序列化和反序列化表达式树以将它们存储在数据库中或将它们发送到另一个组件,并且如果需要使用 ToString 方法进行调试或报告。

关于c# - 从字符串构建表达式<Func<T,bool>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24906977/

相关文章:

c# - 服务在手动停止后自动重启

c# - 从 NEST C# 嵌套聚合获取 Elasticsearch 结果

asp.net-mvc - 无法更新数据库以匹配当前模型,因为存在挂起的更改并且禁用了自动迁移

c# - Linq to Entities 4.1 - 组查询强制排序

c# - 在 linq to entities 中使用自定义方法

c# - 在c#中获取字符串之间的字符串

c# - 405(方法不允许)并被 CORS 策略阻止

c# - 在 EF Core 2 中使用单一表名

c# - 使用 LINQ 的分层数据表示

c# - 具有父子关系的自引用表使用 LINQ 表示文件树