LINQ to SQL 클래스 만들기: O/R 디자이너 사용
업데이트: 2007년 11월
개체 관계형 디자이너(O/R 디자이너)는 데이터베이스에서 LINQ to SQL 클래스를 테이블에 매핑할 수 있도록 합니다. 이러한 매핑된 클래스를 엔터티 클래스라고도 합니다. 엔터티 클래스의 속성은 테이블의 열에 매핑되며, 데이터는 Windows Form의 컨트롤에 바인딩될 수 있습니다. LINQ to SQL에 대한 자세한 내용은 Visual Basic Express에서 LINQ 사용을 참조하십시오.
이 단원에서는 O/R 디자이너를 사용하여 Northwind 데이터베이스의 테이블에 매핑되는 엔터티 클래스를 만드는 방법을 배웁니다. 그런 다음 데이터를 Windows Forms 응용 프로그램에 표시합니다.
사전 요구 사항
Visual Basic Express Edition을 설치할 때 SQL Server Express Edition을 설치하지 않은 경우 계속하기 전에 먼저 설치합니다. SQL Server Compact 3.5 데이터베이스는 LINQ to SQL에서 지원되지 않습니다. SQL Server Express 버전을 얻는 방법에 대한 자세한 내용은 방법: 샘플 데이터베이스 설치에서 SQL Server Express 버전 얻기 단원을 참조하십시오.
이 단원을 완료하려면 SQL Server 버전의 Northwind 샘플 데이터베이스에 액세스할 수 있는 권한이 있어야 합니다. 자세한 내용은 방법: 샘플 데이터베이스 설치를 참조하십시오.
실습
O/R 디자이너를 열려면
파일 메뉴에서 새 프로젝트를 클릭합니다.
새 프로젝트 대화 상자의 템플릿 창에서 Windows Forms 응용 프로그램을 클릭하고 프로젝트의 이름을 LINQToSQLSample로 지정한 다음 확인을 클릭합니다.
새 Windows Forms 프로젝트가 열립니다.
프로젝트 메뉴에서 새 항목 추가를 클릭합니다.
LINQ to SQL 클래스 템플릿을 클릭하고 이름 상자에 NorthwindSample.dbml을 입력합니다.
추가를 클릭합니다.
빈 LINQ to SQL 파일(NorthwindSample.dbml)이 프로젝트에 추가되고 O/R 디자이너가 열립니다.
O/R 디자이너는 두 개의 디자인 화면으로 구성됩니다. 하나는 왼쪽에 있는 엔터티 창이고, 다른 하나는 오른쪽에 있는 메서드 창 영역입니다. 엔터티 창은 파일에 정의된 엔터티 클래스를 표시하는 기본 디자인 화면입니다. 메서드 창은 저장 프로시저 및 함수에 매핑되는 DataContext 메서드를 표시하는 디자인 화면입니다. O/R 디자이너를 마우스 오른쪽 단추로 클릭한 다음 메서드 창 숨기기를 클릭하여 메서드 창을 숨길 수 있습니다. 이 단원에서는 메서드 창을 사용하지 않지만 DataContext 메서드(O/R 디자이너)에서 메서드 창에 대해 자세히 알아볼 수 있습니다.
기본 디자인 화면을 클릭하고 속성 창에서 Name 속성을 살펴봄으로써 해당 이름이 NorthwindSampleDataContext인지 확인합니다. 데이터베이스 탐색기에서 O/R 디자이너 화면으로 데이터베이스 테이블을 끌어 와서 엔터티 클래스를 만들 수 있습니다. 그러나 처음에는 데이터베이스에 대한 연결을 만들어야 합니다. 이 단원에서 SQL Server Express 데이터베이스를 사용한다는 점을 제외하면 이 프로세스는 필요한 정보 얻기: 기존 데이터베이스에 연결에서 설명하는 프로세스와 같습니다.
Northwind 데이터베이스에 연결하려면
보기 메뉴에서 데이터베이스 탐색기를 클릭합니다.
데이터베이스 탐색기가 열립니다.
데이터베이스 탐색기 도구 모음에서 데이터베이스에 연결 단추를 클릭합니다.
데이터 소스 선택 창에서 Microsoft SQL Server 데이터베이스 파일을 클릭한 다음 계속을 클릭합니다.
연결 추가 대화 상자가 열립니다.
연결 추가 대화 상자에서 데이터 소스가 Microsoft SQL Server 데이터베이스 파일(SqlClient)인지 확인합니다.
찾아보기를 클릭하고 Northwind.mdf 데이터베이스를 찾아서 선택합니다. 열기를 클릭합니다.
연결 테스트 단추를 클릭하여 연결되었는지 확인합니다.
확인을 클릭하여 연결 추가 대화 상자를 닫습니다.
엔터티 클래스 만들기
이제 Northwind 데이터베이스의 테이블이 데이터베이스 탐색기에 표시됩니다. 테이블을 데이터베이스 탐색기에서 O/R 디자이너로 끌어 놓을 수 있습니다. 그러면 데이터베이스 탐색기에서 끌어 온 테이블의 열에 매핑되는 속성을 보유한 엔터티 클래스가 자동으로 만들어집니다.
엔터티 클래스를 만들려면
데이터베이스 탐색기에서 Northwind.mdf를 확장한 다음 테이블을 확장합니다.
데이터베이스 탐색기에서 O/R 디자이너 화면으로 Customers를 끌어 옵니다. 프로젝트에 데이터 파일을 복사할지 묻는 메시지가 나타나면 예를 클릭합니다.
Customer라는 엔터티 클래스가 만들어집니다. 이 클래스에는 Customers 테이블의 열에 해당하는 속성이 있습니다.
데이터베이스 탐색기에서 O/R 디자이너 화면으로 Orders를 끌어 옵니다.
Customer 엔터티 클래스에 연결 관계가 있는 Order라는 엔터티 클래스가 만들어집니다. 이 클래스에는 Orders 테이블의 열에 해당하는 속성이 있습니다.
엔터티 클래스를 만든 다음에는 데이터 소스 구성 마법사를 실행하여 데이터 소스 창에 추가할 수 있습니다.
데이터 소스 창에서 엔터티 클래스를 개체 데이터 소스로 추가하려면
빌드 메뉴에서 LINQToSQLSample 빌드를 클릭합니다.
데이터 메뉴에서 데이터 소스 표시를 클릭합니다.
데이터 소스 창에서 새 데이터 소스 추가를 클릭합니다.
데이터 소스 형식 선택 페이지에서 개체를 클릭하고 다음을 클릭합니다.
LINQToSQLSample 노드를 확장하고 Customer 클래스를 찾습니다.
참고: Customer 클래스를 사용할 수 없는 경우에는 취소를 클릭하고 프로젝트를 빌드한 다음 마법사를 다시 실행하십시오.
마침을 클릭하여 데이터 소스를 만들고 데이터 소스 창에 Customer 엔터티 클래스를 추가합니다.
Windows Form의 컨트롤을 엔터티 클래스에 바인딩
데이터 소스 창에서 폼으로 테이블 또는 필드를 끌어 와서 엔터티 클래스에 데이터 바인딩된 컨트롤을 Windows Form에 추가할 수 있습니다.
엔터티 클래스에 바인딩된 컨트롤을 추가하려면
솔루션 탐색기에서 Form1을 마우스 오른쪽 단추로 클릭한 다음 디자이너 보기를 클릭합니다.
데이터 소스 창에서 Customer를 확장합니다.
CompanyName 옆에 있는 드롭다운 화살표를 클릭한 다음 Label을 클릭합니다.
CompanyName을 폼으로 끌어 옵니다.
폼에 레이블과 탐색 도구 모음이 추가됩니다.
데이터 소스 창에서 Form1로 Orders를 끌어 옵니다. CompanyName 아래에 놓습니다.
솔루션 탐색기에서 Form1을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.
폼에서 Form 클래스의 맨 위, 특정 메서드의 외부에 다음 코드를 추가합니다.
Private NorthwindSampleDataContext1 As New _ NorthwindSampleDataContext
폼을 두 번 클릭하여 Form_Load 이벤트에 대한 이벤트 처리기를 만듭니다. 이벤트 처리기에 다음 코드를 추가합니다.
CustomerBindingSource.DataSource = _ NorthwindSampleDataContext1.Customers()
F5 키를 눌러 코드를 실행합니다.
폼이 열리면 도구 모음에서 다음으로 이동 단추를 클릭하여 회사를 스크롤하고 선택된 고객의 주문을 표시하도록 주문 데이터가 업데이트되었는지 확인합니다.
변경 내용 저장
O/R 디자이너에 컨트롤을 추가할 때 탐색 도구 모음의 데이터 저장 단추를 사용할 수 없습니다. 사용자가 변경 내용을 저장할 수 있게 하려면 먼저 저장 단추를 사용할 수 있도록 설정하고 코드를 추가하여 변경된 데이터를 저장하십시오.
저장 단추를 사용할 수 있도록 설정하려면
디자인 뷰에서 탐색 도구 모음의 저장 단추를 선택합니다. 플로피 디스크 아이콘이 있는 단추입니다.
속성 창에서 Enabled 속성을 True로 설정합니다.
저장 단추를 두 번 클릭하여 이벤트 처리기를 만들고 코드 편집기로 전환합니다.
저장 단추 이벤트 처리기에 다음 코드를 추가합니다.
NorthwindSampleDataContext1.SubmitChanges()
F5 키를 눌러 코드를 실행합니다.
Shipped Date 필드 중 하나의 값을 변경하고 Tab 키를 눌러 변경 내용을 커밋합니다.
데이터 저장 단추를 클릭합니다.
폼을 닫아 디버깅을
F5 키를 눌러 변경 내용이 저장되었는지 확인합니다.
다음 단계
이 단원에서는 O/R 디자이너를 사용하여 LINQ to SQL 클래스를 만드는 방법을 배웠습니다. 다음 단원에서는 LINQ 쿼리를 사용하여 데이터를 바인딩하는 방법을 배울 것입니다. 응용 프로그램에서 LINQ를 사용하는 방법에 대한 자세한 내용은 Visual Basic Express에서 LINQ 사용을 참조하십시오.
다음 단원: LINQ를 사용하여 컨트롤에 데이터 바인딩
참고 항목
작업
연습: LINQ to SQL 클래스 만들기(O/R 디자이너)
개념
Visual Basic Express에서 LINQ 사용