Visual Studio LINQ to SQL 도구는 일반적으로 관계형 시스템에서 구현되므로 단일 테이블 상속을 지원합니다. 이 연습에서는 방법: O/R 디자이너를 사용하여 상속 구성 항목에 제공된 일반 단계를 확장하고 O/R 디자이너에서 상속 사용을 보여 주는 몇 가지 실제 데이터를 제공합니다.
이 연습에서는 다음 작업을 수행합니다.
데이터베이스 테이블을 만들고 그 안에 데이터를 추가합니다.
Windows Forms 애플리케이션을 만듭니다.
프로젝트에 LINQ to SQL 파일을 추가합니다.
새 엔터티 클래스를 만듭니다.
상속을 사용하도록 엔터티 클래스를 구성합니다.
상속된 클래스를 쿼리합니다.
Windows Form에 데이터를 표시합니다.
상속에 사용될 테이블 만들기
상속이 어떻게 작동하는지 보기 위해 작은 Person
테이블을 만들고, 기본 클래스로 사용한 다음, 여기에서 상속되는 Employee
개체를 만듭니다.
상속을 보여 주기 위한 기본 테이블을 만들려면
서버 탐색기 또는 데이터베이스 탐색기에서 테이블을 마우스 오른쪽 단추로 클릭하고 새 테이블 추가를 클릭합니다.
참고 항목
Northwind 데이터베이스 또는 테이블을 추가할 수 있는 기타 데이터베이스를 사용할 수 있습니다.
테이블 디자이너에서 다음 열을 테이블에 추가합니다.
열 이름 데이터 형식 Null 허용 ID int False Type int True FirstName nvarchar(200) False LastName nvarchar(200) False 관리자 int True ID 열을 기본 키로 설정합니다.
테이블을 저장하고 이름을 Person으로 지정합니다.
테이블에 데이터 추가
속성이 올바르게 구성되었는지 확인하기 위해서는 단일 테이블 상속에서 각 클래스에 대한 몇 가지 데이터가 테이블에 필요합니다.
테이블에 데이터를 추가하려면
데이터 뷰에서 테이블을 엽니다. (서버 탐색기 또는 데이터베이스 탐색기에서 Person 테이블을 마우스 오른쪽 단추로 클릭하고 테이블 데이터 표시를 클릭합니다.)
다음 데이터를 테이블로 복사합니다. (결과 창에서 전체 행을 선택하여 복사한 다음, 테이블에 붙여넣을 수 있습니다.)
ID Type FirstName LastName 관리자 1 1 Anne Wallace NULL 2 1 Carlos Grilo NULL 3 1 Yael Peled NULL 4 2 Gatis Ozolins 1 5 2 Andreas Hauser 1 6 2 Tiffany Phuvasate 1 7 2 Alexey Orekhov 2 8 2 Michał Poliszkiewicz 2 9 2 Tai Yee 2 10 2 Fabricio Noriega 3 11 2 Mindy Martin 3 12 2 Ken Kwok 3
새 프로젝트 만들기
테이블을 만든 후에는 상속 구성을 보여 주기 위한 새 프로젝트를 만듭니다.
새 Windows Forms 애플리케이션을 만들려면
Visual Studio 파일 메뉴에서 새>프로젝트를 선택합니다.
왼쪽 창에서 Visual C# 또는 Visual Basic을 확장하고 Windows 바탕 화면을 선택합니다.
가운데 창에서 Windows Forms 앱 프로젝트 형식을 선택합니다.
프로젝트 이름을 InheritanceWalkthrough로 지정한 다음, 확인을 선택합니다.
InheritanceWalkthrough 프로젝트가 만들어지고 솔루션 탐색기에 추가됩니다.
프로젝트에 LINQ to SQL 클래스 파일 추가
프로젝트에 LINQ to SQL 파일을 추가하려면
프로젝트 메뉴에서 새 항목 추가를 클릭합니다.
LINQ to SQL 클래스 템플릿을 클릭한 다음, 추가를 선택합니다.
.dbml
파일이 프로젝트에 추가되고 O/R 디자이너가 열립니다.
O/R 디자이너를 사용하여 상속 만들기
상속 개체를 도구 상자에서 디자인 화면으로 끌어 와서 상속을 구성합니다.
상속을 만들려면
서버 탐색기 또는 데이터베이스 탐색기에서 앞에서 만든 Person 테이블로 이동합니다.
Person 테이블을 O/R 디자이너 디자인 화면으로 끌어옵니다.
두 번째 Person 테이블을 O/R 디자이너로 끌어오고 이름을 Employee로 변경합니다.
Person 개체에서 Manager 속성을 삭제합니다.
Employee 개체에서 Type, ID, FirstName 및 LastName 속성을 삭제합니다. 즉, Manager를 제외한 모든 속성을 삭제합니다.
도구 상자의 개체 관계형 디자이너 탭에서 Person 및 Employee 개체 사이에 상속을 만듭니다. 이렇게 하려면 도구 상자에서 상속 항목을 클릭하고 마우스 단추를 놓으세요. 그런 다음, O/R 디자이너에서 Employee 개체와 Person 개체를 차례로 클릭합니다. 그러면 상속 선의 화살표가 Person 개체를 가리킵니다.
디자인 화면에서 상속 선을 클릭합니다.
Discriminator Property 속성을 Type으로 설정합니다.
Derived Class Discriminator Value 속성을 2로 설정합니다.
Base Class Discriminator Value 속성을 1로 설정합니다.
Inheritance Default 속성을 Person으로 설정합니다.
프로젝트를 빌드합니다.
상속된 클래스 쿼리 및 폼에 데이터 표시
이제 개체 모델에서 특정 클래스를 쿼리하는 일부 코드를 양식에 추가합니다.
LINQ 쿼리를 만들고 폼에 결과를 표시하려면
ListBox를 Form1으로 끌어서 놓습니다.
폼을 두 번 클릭하여
Form1_Load
이벤트 처리기를 만듭니다.다음 코드를
Form1_Load
이벤트 처리기에 추가합니다.
애플리케이션 테스트
애플리케이션을 실행하고 목록 상자에 표시된 레코드가 모두 직원(Type 열의 값이 2인 레코드)인지 확인합니다.
애플리케이션을 테스트하려면
F5키를 누릅니다.
Type 열의 값이 2인 레코드만 표시되는지 확인합니다.
양식을 닫습니다. (디버그 메뉴에서 디버깅 중지를 클릭합니다.)