현재 일부 아이디어를 긁어 내기 위해 AdventureWorks 예제 데이터베이스와 LinqPad를 사용하고 있습니다.Linq 결과가 다른 순서로 표시됩니다.
SalesOrderHeaders.GroupBy (soh => new {soh.CustomerID, soh.BillToAddressID})
.Where(soh => soh.Skip(1).Any())
.Dump();
아이디어는 몇 가지 기준에 따라 중복을 찾은 다음 데이터의 첫 번째 세트를 제외하고이를 표시하는 것이 었습니다 :
이 문제의 쿼리입니다. 결과는 테이블에서 삭제되어야합니다.
쿼리를 실행 한 후 나는 내가 쿼리의 올바른 결과에 대한 상관 없어 결과 B)
를 얻을 결과 A)
쿼리를 다시 실행 한 후 얻을 수 있지만, 대한 결과 집합의 순서. 이 두 가지 가능성 만 존재하며 쿼리의 모든 실행마다 대체됩니다. 분명히 Key가 주문할 수는 있습니다 만, 왜 이런 일이 발생하는지에 더 관심이 있습니까? 주문이 찬/교대하는 이유는 무엇입니까?
사용자가 기대하는 다른 이유가 없거나 행 사이에 논리적 순서가 없더라도 사용자에게 표시되는 데이터를 주문해야한다는 일반적인 원칙이 있습니다. (물론, LINQPad 및 SSMS와 같은 개발자 도구에는 적용되지 않습니다.) –