2010-02-05 89 views
6

我有一个时间赫克与转化一个简单的SQL查询到LINQ查询(用vb BTW)分组使用LINQ

这里是我的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

,当我在结果集合中的foreach,每一行(17000)出现。

感谢您的关注。

回答

0

发现在另一个线程答案:

Here

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

应该已经

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

那得到的独特价值,只是该列。

3

我怕我不知道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

仍返回所有这些。我正在寻找usrdefnd5的不同值。 – spuppett 2010-02-05 17:53:48

+0

它应该返回所有行,但按该字段分组。每个组都将是具有该键的一系列行。你是否需要行,或者*只是*键? – 2010-02-05 18:09:35

+0

我只需要钥匙。 – spuppett 2010-02-05 18:16:11