Группировка с использованием LINQ - PullRequest
6 голосов
/ 05 февраля 2010

У меня чертовски много времени с преобразованием простого SQL-запроса в запрос LINQ (используя vb btw)

Вот мой SQL:

SELECT     USRDEFND5
FROM         int_gp_employee
GROUP BY USRDEFND5

XML выглядит так:

<int_gp_employee>
  <row>
    ....
    <usrdefnd5>Some GUID</usrdefnd5>
  </row>
</int_gp_employee>

Я пробовал несколько различных вариантов LINQ. Мое текущее заявление:

From b In xmlFile...<row> Group b...<usrdefnd5> By b...<usrdefnd5> INTO group

когда я перебираю полученную коллекцию, появляется КАЖДАЯ строка (17000).

Спасибо, что заглянули.

Ответы [ 2 ]

3 голосов
/ 05 февраля 2010

Боюсь, я точно не знаю VB-эквивалент, но в C # это будет:

var query = from row in xmlFile.Descendants("row")
            group row by (string) row.Element("usrdefnd5");

Без использования литералов XML VB будет:

Dim query = From row In document.Descendants("row") _
            Group row By CStr(row.Element("usrdefnd5"))

РЕДАКТИРОВАТЬ: если вам просто нужны разные ключи, то что-то вроде:

Dim query = From row In document.Descendants("row") _
            Select CStr(row.Element("usrdefnd5")) _
            Distinct
0 голосов
/ 06 февраля 2010

Нашел ответ в другой теме:

Здесь

From b In xmlFile...<row> Group b...<usrdefnd5> By b...<usrdefnd5> INTO group

должно было быть

From row IN xmlFile...<row> SELECT row.<USRDEFND5>.value distinct

Получает уникальное значение и только этот столбец.

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