쿼리: 데이터 소스에서 정보 검색
쿼리를 사용하여 조건 집합과 일치하는 데이터를 반환합니다.예를 들어, 미국에 거주하는 고객의 수를 알고 싶은 경우 쿼리를 만들어 고객 목록을 스캔할 수 있으며 주소에 지정된 국가/지역을 확인할 수 있습니다.
쿼리를 만들고 응용 프로그램의 모델에 저장할 수 있습니다.그런 다음 쿼리 디자이너를 사용하여 검색 조건을 지정할 수 있습니다.쿼리 디자이너에서 필요한 기능을 제공하지 않는 경우 일부 코드를 작성하여 쿼리를 확장할 수 있습니다.조건을 지정하면 화면에서 쿼리를 사용하거나 비즈니스 논리의 일부로 해당 쿼리를 실행하십시오.
쿼리 작성
솔루션 탐색기에서 쿼리를 만들 수 있습니다.쿼리는 응용 프로그램의 모델에서 하나의 엔터티(예를 들어, Customer 엔터티) 또는 테이블을 기반으로 합니다.쿼리는 응용 프로그램의 모델에 있는 다른 쿼리를 기반으로 할 수 있습니다.쿼리의 기반이 되는 엔터티, 테이블 또는 쿼리를 쿼리의 원본 데이터라고 합니다.자세한 내용은 방법: 쿼리 추가, 제거 및 수정를 참조하십시오.
쿼리 디자이너를 사용하여 쿼리 디자인
대부분의 경우, 쿼리 디자이너를 사용하여 쿼리를 시각적으로 디자인할 수 있습니다.디자이너에서 선택하여 필터 조건 및 필터 그룹, 정렬 조건 및 매개 변수를 쿼리에 추가합니다.자세한 내용은 방법: 쿼리 디자이너를 사용하여 쿼리 디자인를 참조하십시오.
필터 조건
하나 이상의 필터 조건을 추가하여 쿼리 결과를 좁힐 수 있습니다.필터 조건은 각 데이터 행이 충족해야 하는 규칙을 설명합니다.규칙에 맞는 행은 쿼리 결과에 포함됩니다.필터 조건에는 다음의 세 가지 기본 부분이 포함됩니다.
선택 속성
비교 값
연산자
선택 속성은 필터 조건의 기준으로 사용할 속성입니다.예를 들어, 특정 주문 날짜의 판매 주문을 반환하려면 선택 속성으로 OrderDate를 사용할 수 있습니다.선택 속성은 원본 데이터에 있는 속성이거나 관련된 엔터티 또는 테이블에 있는 속성일 수 있습니다.쿼리 디자이너에서 속성은 관련된 엔터티 또는 영 대 일 또는 하나의 다중성을 갖고 있는 테이블에 대해서만 나타납니다.예를 들어, 하나의 판매 주문에는 한 명의 고객만 있습니다.따라서 판매 주문을 반환하는 쿼리에서 필터 조건의 일부로 관련된 고객의 속성을 선택할 수 있습니다.관련 엔터티 또는 많은 다양성을 갖고 있는 테이블에 속성을 사용하려는 경우 코드를 사용하여 쿼리를 확장해야 합니다.
비교 값이 선택 속성과 비교됩니다.비교 값은 "9/22/2009 12:00:00 AM"과 같이 리터럴 값이거나, 선택 속성, 매개 변수, 또는 지금, 오늘 또는 주초와 같이 상대적인 값일 수 있습니다.
연산자는 만들려는 비교 형식을 지정하는 기호입니다.예를 들어, 주문 날짜가 "2009년 9월 22일 오전 12시" 전에 이루어진 판매 주문을 반환하려면 "<" 연산자를 선택합니다.
이 예제에서 설명하는 전체 필터 조건은 Where OrderDate < 9/22/2009 12:00:00 AM입니다.
다음 논리 연산자(AndOrAnd Not, Or Not) 중 하나를 사용하여 필터 조건을 다른 필터 조건에 연결할 수 있습니다.
디자이너에서 원하는 위치로 드래그하여 조건의 순서를 변경할 수 있습니다.
다음 그림은 필터 조건의 일부를 보여 줍니다.
필터 그룹
필터 조건을 함께 그룹화하여 나머지 필터 조건과 별도로 하나의 단위로 간주되도록 할 수 있습니다.이 작업을 수행하려면 쿼리 디자이너에서 필터 그룹을 만듭니다.
필터 그룹화 조건은 수학 방정식 또는 논리문에서 식을 괄호로 묶는 것과 같습니다.조건을 그룹화하면 그룹의 첫 번째 조건 앞에 나타나는 논리 연산자가 전체 그룹에 적용됩니다.
개별 필터 조건처럼 디자이너에서 원하는 위치로 드래그하여 필터 그룹의 순서를 변경할 수 있습니다.
다음 그림은 두 개의 필터 그룹을 보여 줍니다.
정렬 조건
하나 이상의 정렬 조건을 추가하여 쿼리 결과에서 레코드를 표시하는 기본 순서를 지정할 수 있습니다.정렬 조건에는 속성 및 방향(예: OrderDate 및 Ascending)이 포함됩니다.정렬 조건은 화면에 표시되는 레코드의 기본 정렬 순서를 정의합니다.화면의 UI(사용자 인터페이스)에서 선택하여 레코드를 다른 순서로 볼 수 있습니다.쿼리 디자이너에서 목록에서 원하는 위치로 끌어서 놓아 정렬 조건의 순서를 변경할 수 있습니다.
매개 변수
사용자가 쿼리 결과를 동적으로 필터링할 수 있도록 설정할 수 있습니다.예를 들어, 화면에 특정 판매 지역을 선택하여 사용자가 지역 판매 주문을 볼 수 있도록 설정할 수 있습니다.이 시나리오를 지원하려면 매개 변수를 쿼리에 추가하고 쿼리 이름을 적절하게 지정합니다(예, SalesTerritory).그런 다음 매개 변수에 필터의 비교 값을 설정합니다.예를 들어, 쿼리 식은 Where TerritoryID = SalesTerritory일 수 있습니다.
런타임에 사용자가 매개 변수 값을 제공할 수 있는 화면을 디자인할 수 있습니다.자세한 내용은 방법: 쿼리 매개 변수에 값 제공를 참조하십시오.
코드를 사용하여 쿼리 확장
일부 유형의 필터 조건은 쿼리 디자이너에서 지원되지 않습니다.디자이너에서 제한 사항이 발생하면 코드를 사용하여 쿼리에 조건을 추가할 수 있습니다.
[!참고]
화면의 쿼리는 확장할 수 없습니다.솔루션 탐색기에 표시되는 쿼리는 확장만 할 수 있습니다.화면의 쿼리를 편집하는 것에 대한 자세한 내용은 방법: Silverlight 화면에서 데이터 필터링을 참조하십시오.
다음 표는 쿼리 디자이너를 사용하여 만들 수 없는 두 필터 조건을 보여 줍니다.
필터 조건 |
코드를 사용하는 이유 |
---|---|
판매 주문 수를 기반으로 최상위 10명의 고객을 반환합니다. |
판매 주문 수를 결정하려면 Count 작업을 사용해야 합니다.Count, Aggregate, Sum과 같은 작동은 쿼리 디자이너에서 사용할 수 없습니다. |
손수레를 구매한 모든 고객을 반환합니다. |
고객의 수레 구입 여부를 확인하려면 Product 엔터티를 참조하는 필터 조건을 사용해야 합니다.한 고객이 여러 제품과 관련될 수 있기 때문에 Product 엔터티가 Customer-Product 관계에서 여러 쪽에 존재할 가능성이 있습니다.쿼리 디자이너는 사용자가 관계의 여러 쪽을 탐색할 수 없도록 설정합니다. |
이 한계를 해결하려면 쿼리를 실행할 때 호출되는 메서드에 사용자 지정 코드를 추가할 수 있습니다.자세한 내용은 방법: 코드를 사용하여 쿼리 확장를 참조하십시오.
코드에서 표준 LINQ 구문을 사용하여 필터 조건을 정의할 수 있습니다.쿼리를 실행하는 경우 디자이너에서 정의하는 조건은 쿼리 결과를 만드는 코드에서 지정한 조건과 결합됩니다.
코드에서 정의하는 모든 조건이 쿼리 디자이너에서 필터 조건으로 나타나지 않습니다.마찬가지로, 쿼리 디자이너를 사용하여 추가하는 필터 조건은 메서드에 나타나지 않습니다.쿼리에 매개 변수를 추가하려면 쿼리 디자이너만 사용해야 합니다.쿼리 디자이너를 사용하여 추가한 매개 변수는 메서드의 매개 변수 목록에 나타납니다.
쿼리 사용
화면에 쿼리를 사용하거나 비즈니스 작업의 일부로 코드에서 쿼리를 실행할 수 있습니다.
화면에서 쿼리 사용
사용자 지정 쿼리(예를 들어, 미국에 있는 고객의 목록을 보여 주는 화면)를 기준으로 화면을 만들 수 있습니다.자세한 내용은 방법: Silverlight 화면 만들기를 참조하십시오.
화면에 여러 쿼리를 추가할 수 있습니다.예를 들어, 특정 고객에 대한 판매 주문 목록을 표시하는 쿼리를 디자인할 수 있습니다.고객 화면에 해당 쿼리를 추가할 수 있습니다.그런 다음 사용자가 관련된 판매 주문을 모두 볼 수 있는 고객을 선택할 수 있도록 설정할 수 있습니다.이 작업을 수행하는 방법에 대한 자세한 내용은 방법: 쿼리 매개 변수에 값 제공를 참조하십시오.
코드에서 쿼리 사용
응용 프로그램 모델에서 쿼리를 검색한 다음, 해당 쿼리를 코드에서 실행할 수 있습니다.이 기능을 사용하면 응용 프로그램의 비즈니스 논리로 데이터의 대상 컬렉션에 대한 작업을 할 수 있습니다.자세한 내용은 방법: 코드를 사용하여 쿼리에서 데이터 검색를 참조하십시오.
관련 항목
제목 |
설명 |
Visual Studio LightSwitch UI에서 쿼리를 추가할 수 있는 위치를 설명합니다. |
|
비주얼 디자이너를 사용하여 필터 조건, 매개 변수 및 쿼리의 정렬 조건을 정의하는 방법을 설명합니다. |
|
사용자가 쿼리 매개 변수에 값을 제공할 수 있도록 설정하는 방법에 대해 설명합니다. |
|
디자이너 기능 이상의 방법으로 쿼리를 수정하는 방법을 설명합니다. |
|
쿼리를 실행하기 전후에 발생하는 이벤트를 처리하는 방법을 설명합니다. |
|
코드를 사용하여 쿼리를 검색 및 실행하는 방법을 설명합니다. |
|
쿼리 및 쿼리 요소의 속성을 설명합니다.이 속성 값은 속성 창에서 설정할 수 있습니다. |