Динамический LINQ Sub Query - PullRequest
       26

Динамический LINQ Sub Query

0 голосов
/ 28 января 2019

У меня есть запрос LINQ, который я хочу генерировать динамически:

var groupData =
    from l in data
    group l by l.Field1 into field1Group
    select new MenuItem()
    {
        Key = field1Group.Key,
        Count = field1Group.Count(),
        Items = (from k in field1Group
                 group k by k.Field2 into field2Group
                 select new MenuItem()
                 {
                     Key = field2Group.Key,
                     Count = field2Group.Count()
                 }).ToList()
    };

Конечная цель состоит в том, чтобы иметь возможность динамически группировать данные по любой комбинации полей без ограничения для вложенных запросов.

Я могу дойти до первого уровня, но я борюсь с вложенными подзапросами:

string field1 = "Field1";
string field2 = "Field2";

var groupDataD =
    data.
    GroupBy(field1, "it").
    Select("new ( it.Key, it.Count() as Count )");

Возможно ли это с цепочкой динамического LINQ?Или есть лучший способ добиться этого?

...