我有一点时间将简单的SQL查询转换为LINQ查询(使用vb顺便说一句)
这是我的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)都显示出来。
谢谢你看看。
答案 0 :(得分: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
答案 1 :(得分:0)
在另一个帖子中找到答案:
From b In xmlFile...<row> Group b...<usrdefnd5> By b...<usrdefnd5> INTO group
应该是
From row IN xmlFile...<row> SELECT row.<USRDEFND5>.value distinct
获得唯一值,只有该列。