Как отформатировать данные с помощью LINQ to Entities в следующем формате? - PullRequest
2 голосов
/ 01 апреля 2012

С помощью LINQ я могу получить данные из таблицы в формате, показанном непосредственно ниже?Может ли LINQ выполнить этот тип форматирования или я должен просмотреть результаты для форматирования?

Формат Я пытаюсь получить данные в:

dau      gmu           population     year    
------   ----------    ----------    -------
1        2, 201        1680          2010
2        3, 4, 5, 14   14570         2010

ДАННЫЕ В ТАБЛИЦЕ:

 id          dau         gmu         population         year species
----------- ----------- ----------- ------------------- ---- -------
1           1           2           1680                2010 E
2           1           201         1680                2010 E
3           2           3           14570               2010 E
4           2           4           14570               2010 E
5           2           5           14570               2010 E
6           2           14          14570               2010 E

1 Ответ

2 голосов
/ 01 апреля 2012

Фактическое форматирование будет зависеть от вас, но, предполагая, что у вас есть коллекция этих элементов под названием list, вы можете сделать это:

var result = from x in list
             group x by new {x.dau, x.population, x.year} into p
             select new 
{
    dau = p.Key.dau,
    population = p.Key.population,
    year = p.Key.year,
    gmu = p.Select (x => x.gmu)

};

Возможно, вам придется перенести это вСписок памяти, чтобы сделать это, если вы на самом деле имеете дело с L2E.

РЕДАКТИРОВАТЬ: Только что попробовал с L2E, и, кажется, работает нормально, как написано.Вместо list в вашем запросе это будет что-то вроде context.TableName.

Вот полный код.Вывод очень неаккуратный, но уже поздно, и я не думаю, что OP так сильно беспокоился о форматировании:

        var result = from x in list.Stacko1
                     group x by new { x.dau, x.population, x.year } into p
                     select new
                     {
                         dau = p.Key.dau,
                         population = p.Key.population,
                         year = p.Key.year,
                         gmu = p.Select(x => x.gmu)

                     };

        result.ToList().ForEach(item=>
                                    {
                                        System.Console.Write("{0}\t\t", item.dau);

                                        item.gmu.ToList().ForEach(gmuElement=>
                                                                      {
                                                                          System.Console.Write("{0},", gmuElement);
                                                                      });


                                        System.Console.Write("\t\t");
                                        System.Console.Write("{0}\t\t", item.population);
                                        System.Console.WriteLine("{0}", item.year);
                                    });

        System.Console.ReadKey();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...