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