使用LINQ to SQL,如何获得1,21行?我正在寻找
SomeId==1
and
SecondId is a unique entry
SomeId SecondId
0 20
1 21
1 22
1 22
编辑:
好的,抱歉。那不清楚。我想要做的是通常找到那一行。可能还有另一个条目如下:
1 25
那是唯一的25个。所以我会回来两行。如果没有引用特定的ID,我如何找到这两行?
答案 0 :(得分:3)
var query = from row in table
where row.SomeId == targetId
group row by row.SecondId into g
where g.Count() == 1
select g.Single();
换句话说:
SomeId
过滤SecondId
SecondId
个{{1}}条目的组当然可以有多个这样的组 - 所以你会在你的例子中获得(1,21)和(1,25)。
答案 1 :(得分:1)
编辑:如果您说想要找到SomeId&amp ;;的任意组合。 SecondId哪个组合有多行?然后你可以做到以下几点:
var results = source.Where(x => x.SomeId == 1).GroupBy(x => x.SecondId).Where(g => g.Count > 1);
这将为您提供结果组,并仅返回具有多行的结果。因此,在您的示例中,您将获得一个返回1,22 ...
的组如果您正在查找的情况是您只有表中有一个条目的行与该组合(与我正在返回的相反),您可以从'>'更改比较运算符到'==',另一个答案也表明了这种可能性。