LINQ를 사용하여 쿼리 할 SQL Server에 저장된 테이블이 있습니다. 테이블의 막연한 설명 :각 키의 최대 값을 가진 행 찾기
ID1 | ID2 | SomeData
-----------------------------
1 | 1 | 'Moo'
1 | 2 | 'Meow'
1 | 3 | 'Woof'
1 | 4 | 'Cheap'
2 | 1 | 'Quack'
2 | 2 | 'Grrrrr'
2 | 3 | 'Wan wan'
I 행에만 관심 ID2
이 ID1
예는 결과를 원하는 당 최대 값입니다
1 | 4 | 'Cheap'
2 | 3 | 'Wan wan'
나는이 SQL 코드와 함께 올라와있다 :
가SELECT *
FROM SomeTable a
INNER JOIN
(
SELECT ID1, MAX(ID2) as SomeName
FROM SomeTable
GROUP BY ID1
) as b
ON a.ID1 = b.ID1 and a.ID2 = b.SomeName
LINQ에서 구현할 때 하위 쿼리가 필요합니까? 즉, 데이터베이스를 쿼리하고 변수를 '내부 쿼리'결과와 함께로드 한 다음 동일한 테이블을 쿼리하지만 '내부 쿼리'의 값과 비교합니다. 나는 잠시 동안이 문제를 해결한다면, 결국은 얻을 것이지만, LINQ에서 이것을 매우 쉽게 할 수있는 멋진 방법이있는 것처럼 느껴집니다.
원하는 답변은 확장 메소드 구문을 사용합니다.
보너스 : 확장 메서드 구문 변환기에 대한 표준 LINQ 구문 형식이 있습니까? LINQ 문을 사용하기 위해 어떤 도구를 사용합니까? LINQ 쿼리를 사용하여 전체 C# (ASP.NET MVC)을 실행해야하는 것은 다소 부담 스럽습니다.
LinqPad는 LINQ 문을 사용하여 놀아보세요! http://www.linqpad.net/ (일반 C# 코드도 사용) – driis
[** LINQPad **] (http://www.linqpad.net/)의 사본을 얻으십시오. – mellamokb