构建一个表达式>从字符串

本文关键字:bool 字符串 Func 一个 表达式 构建 | 更新日期: 2023-09-27 18:14:14

我有一个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);

是否有办法从保存的str重建Expression<Func<T,bool>> ?

构建一个表达式<Func<T,bool>>从字符串

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