为XML创建动态Linq查询

时间:2016-02-07 23:09:14

标签: c# linq dynamic-linq

我想构建一个查询构建器,用户可以在其中输入不同的条件,例如" ID> 10" " AND ID< 40&#34 ;.

用户也可以选择他想要显示的不同xml元素。例如,他可以选择显示ID元素和Code元素。

我有两个列表,一个用于用户选择的过滤器,另一个用于他想要显示的元素。我的问题是我不知道如何添加逻辑运算符,如"&&"和" ||"到linq where子句。

此外,我不知道如何动态生成select语句以仅包含用户选择的字段。

这是我到目前为止所做的:

XDocument doc = XDocument.Load(xmlFile);
var query = doc.Descendants("STUDENT");

// iterate through all the where conditions and add them to linq query
foreach(WhereConditions wcon in whereConditions)
{
    query = query.Where(x => (int)x.Element(wcon.SELECTEDFIELD) >   Int32.Parse(wcon.COMPARISONVALUE));
}

foreach(string selectedColumns in selectedFields)
{
    XElement x;

    x = doc.Root.Element("STUDENTS").Element("STUDENT");
    query = query.Select(x =>(new {selectedColumns = x.Element(selectedColumns).Value}));
}

0 个答案:

没有答案