C#:生成运行时查询和执行

时间:2013-07-10 12:28:37

标签: c# linq-to-xml dynamicquery

我一直致力于一个项目,客户的要求是根据他的要求提供解析RSS Feed in XML Format给用户的配置访问权限。选择不同的参数后,将生成一个查询(LINQ to XML),并且所有过滤器(如Value.StartsWith/EndsWith/Contains)都是未知的。可以有无限制的过滤器,但不能超出上述三个(StartsWith/EndsWith/Contains)。我在String变量中有这个查询。

我的问题 就是这样,我们可以在用户选择后执行在运行时生成的查询吗? 查询更可能看起来像这样

xmldoc.Descendants("item")
      .Where(c =>c.Element("description").Value.StartsWith("some text") 
             && c.Element(description).Value.Contains("some text") 
      .Select(c => c.Element(description).Value).Single();

如果有人知道,这是否可能。如果是,我应该在哪里看下一个。 感谢

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。我最喜欢的变体是使用PredciateBuilder来动态构建查询。