[sql] LINQ에서 SELECT UNIQUE를 수행하려면 어떻게해야합니까?

다음과 같은 목록이 있습니다.

Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange

LINQ로 SELECT UNIQUE를 수행하려고합니다. 즉,

Red
Brown
Yellow
Green
Orange

var uniqueColors = from dbo in database.MainTable
                   where dbo.Property == true
                   select dbo.Color.Name;

그런 다음 이것을 다음으로 변경했습니다.

var uniqueColors = from dbo in database.MainTable
                   where dbo.Property == true
                   select dbo.Color.Name.Distinct();

성공하지 못했습니다. 첫 번째 select는 모든 색상을 가져 오므로 고유 한 값만 가져 오도록 어떻게 수정합니까?

이 쿼리를 구조화하는 더 좋은 방법이 있다면 해당 경로로 이동하는 것이 좋습니다.

.OrderBy( "column name" )예를 들어 색상 이름, 이름 속성별로 알파벳순으로 편집 할 수 있도록 어떻게해야 합니까?

계속 메시지를받습니다.

형식 인수는 사용법에서 유추 할 수 없습니다. 형식 인수를 명시 적으로 지정해보십시오.



답변

Distinct()당신이 그 후 정렬해야하므로, 주문까지 엉망 것입니다.

var uniqueColors =
               (from dbo in database.MainTable
                 where dbo.Property == true
                 select dbo.Color.Name).Distinct().OrderBy(name=>name);


답변

var uniqueColors = (from dbo in database.MainTable
                    where dbo.Property == true
                    select dbo.Color.Name).Distinct();


답변

쿼리 이해 구문을 사용하면 다음과 같이 orderby를 얻을 수 있습니다.

var uniqueColors = (from dbo in database.MainTable
                    where dbo.Property
                    orderby dbo.Color.Name ascending
                    select dbo.Color.Name).Distinct();


답변