我有一个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
?
答案 0 :(得分:0)
我建议您使用Expression Tree Serializer开源项目。通过这种方法,您可以序列化和反序列化表达式树,以将它们存储在db中,或者将它们发送到另一个组件,如果需要,可以使用ToString方法进行调试或报告。