다음을 통해 공유


단계별 가이드: 단일 테이블 상속을 사용하여 LINQ to SQL 클래스 만들기(O/R 디자이너)

Visual Studio의 LINQ to SQL 도구는 일반적으로 관계형 시스템에서 구현되므로 단일 테이블 상속을 지원합니다. 이 연습은 방법: O/R 디자이너를 사용한 상속 구성에 제공된 일반적인 단계를 확장하고, O/R 디자이너에서 상속의 사용을 실제 데이터로 설명합니다.

이 연습에서는 다음 작업을 수행합니다.

  • 데이터베이스 테이블을 만들고 여기에 데이터를 추가합니다.

  • Windows Forms 애플리케이션을 만듭니다.

  • 프로젝트에 LINQ to SQL 파일을 추가합니다.

  • 새 엔터티 클래스를 만듭니다.

  • 상속을 사용하도록 엔터티 클래스를 구성합니다.

  • 상속된 클래스를 쿼리합니다.

  • Windows Form에 데이터를 표시합니다.

상속할 테이블 만들기

상속의 작동 방식을 확인하려면 작은 Person 테이블을 만들고 기본 클래스로 사용한 다음 상속하는 개체를 Employee 만듭니다.

상속을 보여 주는 기본 테이블을 만들려면

  1. 서버 탐색기 또는 데이터베이스 탐색기에서 테이블 노드를 마우스 오른쪽 단추로 클릭하고 새 테이블 추가를 클릭합니다.

    비고

    Northwind 데이터베이스 또는 테이블을 추가할 수 있는 다른 데이터베이스를 사용할 수 있습니다.

  2. 테이블 디자이너에서 테이블에 다음 열을 추가합니다.

    열 이름 데이터 형식 Null 허용
    아이디 int 거짓
    유형 int 진실
    이름 nvarchar(200) 거짓
    nvarchar(200) 거짓
    관리자 int 진실
  3. ID 열을 기본 키로 설정합니다.

  4. 테이블을 저장하고 이름을 Person으로 지정 합니다.

테이블에 데이터 추가

상속이 올바르게 구성되었는지 확인할 수 있도록 테이블에는 단일 테이블 상속의 각 클래스에 대한 일부 데이터가 필요합니다.

테이블에 데이터를 추가하려면

  1. 데이터 뷰에서 테이블을 엽니다. (서버 탐색기 또는 데이터베이스 탐색기에서 Person 테이블을 마우스 오른쪽 단추로 클릭하고 테이블 데이터 표시를 클릭합니다.)

  2. 다음 데이터를 테이블에 복사합니다. ( 결과 창에서 전체 행을 선택하여 복사한 다음 테이블에 붙여넣을 수 있습니다.)

    아이디 유형 이름 관리자
    1 1 월레스 NULL
    2 1 카를로스 그릴로 (Grilo) NULL
    3 1 Yael Peled NULL
    4 2 가티스 주 오졸린스 1
    5 2 안드레아스 하우저 1
    6 2 티파니 푸바세이트 주 1
    7 2 Alexey Orekhov 2
    8 2 Michał 폴리슈키에비츠 2
    9 2 타이 2
    10 2 Fabricio 노리에가 주 3
    11 2 민 디 마틴 3
    12 2 3

새 프로젝트 만들기

이제 테이블을 만들었으므로 상속 구성을 보여 주는 새 프로젝트를 만듭니다.

새 Windows Forms 애플리케이션을 만들려면

  1. Visual Studio의 파일 메뉴에서 새로 만들기>프로젝트를 차례로 선택합니다.

  2. 왼쪽 창에서 Visual C# 또는 Visual Basic 을 확장한 다음 , Windows Desktop을 선택합니다.

  3. 가운데 창에서 Windows Forms 앱 프로젝트 유형을 선택합니다.

  4. 프로젝트 이름을 InheritanceWalkthrough로 지정한 다음 확인을 선택합니다.

    InheritanceWalkthrough 프로젝트가 만들어지고 솔루션 탐색기에 추가됩니다.

프로젝트에 LINQ to SQL 클래스 파일 추가

프로젝트에 LINQ to SQL 파일을 추가하려면

  1. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  2. LINQ to SQL 클래스 템플릿을 클릭한 다음 추가를 선택합니다.

    .dbml 파일이 프로젝트에 추가되고 O/R 디자이너가 열립니다.

O/R 디자이너를 사용하여 상속 만들기

도구 상자에서 디자인 화면으로 상속 개체를 끌어 상속을 구성합니다.

상속을 만들려면

  1. 서버 탐색기 또는 데이터베이스 탐색기에서 이전에 만든 Person 테이블로 이동합니다.

  2. Person 테이블을 O/R 디자이너 디자인 화면으로 끕니다.

  3. 두 번째 Person 테이블을 O/R 디자이너 로 끌어와 이름을 Employee으로 변경합니다.

  4. Person 개체에서 Manager 속성을 삭제합니다.

  5. Employee 개체에서 Type, ID, FirstNameLastName 속성을 삭제합니다. 즉, Manager를 제외한 모든 속성을 삭제합니다.

  6. 도구 상자개체 관계형 디자이너 탭에서 PersonEmployee 개체 간에 상속을 만듭니다. 이렇게 하려면 도구 상자에서 상속 항목을 클릭하고 마우스 단추를 놓습니다. 그런 다음 Employee 개체를 클릭한 다음 O/R 디자이너에서 Person 개체를 클릭합니다. 상속 줄의 화살표는 Person 개체를 가리킵니다.

  7. 디자인 화면에서 상속 선을 클릭합니다.

  8. 판별자 속성 속성을 Type으로 설정합니다.

  9. 파생 클래스 판별자 값 속성을 2로 설정합니다.

  10. 기본 클래스 판별자 값 속성을 1로 설정합니다.

  11. 상속 기본 속성을Person으로 설정합니다.

  12. 프로젝트를 빌드합니다.

상속된 클래스를 쿼리하고 폼에 데이터를 표시합니다.

이제 개체 모델의 특정 클래스를 쿼리하는 일부 코드를 양식에 추가합니다.

LINQ 쿼리를 만들고 폼에 결과를 표시하려면

  1. ListBoxForm1로 끌어다 놓습니다.

  2. 폼을 두 번 클릭하여 이벤트 처리기를 만듭니다 Form1_Load .

  3. 이벤트 처리기에 다음 코드를 Form1_Load 추가합니다.

    NorthwindDataContext dc = new DataClasses1DataContext();
    var results = from emp in dc.Persons
                  where emp is Employee
                  select emp;
    
    foreach(Employee Emp in results)
    {
        listBox1.Items.Add(Emp.LastName)
    }
    

애플리케이션 테스트

애플리케이션을 실행하고 목록 상자에 표시된 레코드가 모든 직원( 형식 열에 값이 2인 레코드)인지 확인합니다.

애플리케이션을 테스트하려면

  1. F5 누릅니다.

  2. 형식 열에 값이 2인 레코드만 표시되는지 확인합니다.

  3. 양식을 닫습니다. (디버그 메뉴에서 디버깅 중지를 클릭합니다.)