构建表达式<func <t,bool>&gt;来自字符串</func <t,bool>

时间:2014-07-23 09:37:40

标签: 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

1 个答案:

答案 0 :(得分:0)

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