O/R 디자이너 개요
업데이트: November 2007
개체 관계형 디자이너(O/R 디자이너)에서는 데이터베이스의 개체를 기반으로 LINQ to SQL 엔터티 클래스 및 연관(관계)을 만들기 위한 시각적 디자인 화면을 제공합니다. 즉, O/R 디자이너는 데이터베이스의 개체에 매핑되는 응용 프로그램의 개체 모델을 만드는 데 사용되며 엔터티 클래스와 데이터베이스 간에 데이터를 주고 받는 데 사용되는 강력한 형식의 DataContext를 생성합니다. 또한 O/R 디자이너에서는 데이터를 반환하고 엔터티 클래스를 채우기 위해 저장 프로시저 및 함수를 DataContext 메서드에 매핑하는 기능을 제공합니다. 마지막으로 O/R 디자이너에서는 엔터티 클래스 간의 상속 관계를 디자인하는 기능을 제공합니다.
O/R 디자이너는 LINQ to SQL 클래스와 데이터베이스 개체 간의 매핑을 제공하는 .dbml 파일을 생성합니다. 또한 O/R 디자이너는 형식화된 DataContext 및 엔터티 클래스를 생성합니다.
O/R 디자이너의 디자인 화면은 두 영역으로 구분되어 있습니다. 왼쪽에는 엔터티 창이, 오른쪽에는 메서드 창이 표시됩니다. 엔터티 창은 엔터티 클래스, 연관 및 상속 계층을 표시하는 기본 디자인 화면입니다. 메서드 창은 저장 프로시저와 함수에 매핑되는 DataContext 메서드를 표시하는 디자인 화면입니다.
참고: |
---|
O/R 디자이너에서는 현재 SQL Server 2000, SQL Server 2005, SQL Server 2008 및 SQL Server Express 데이터베이스만 지원합니다. O/R 디자이너는 SQL Server Compact 3.5를 지원하지 않지만 LINQ to SQL에서는 지원됩니다. 자세한 내용은 SQL Server Compact 3.5 및 LINQ to SQL을 참조하십시오. SQL Server Express를 얻는 방법에 대한 자세한 내용은 방법: 샘플 데이터베이스 설치 항목에서 SQL Server Express 얻기 단원을 참조하십시오. |
O/R 디자이너 열기
O/R 디자이너를 열려면 프로젝트에 새 LINQ to SQL 클래스 항목을 추가합니다. 자세한 내용은 방법: 프로젝트에 LINQ to SQL 클래스 추가(O/R 디자이너)를 참조하십시오.
중요: |
---|
O/R 디자이너는 일대일 매핑 관계만 지원하는 단순 개체 관계형 매퍼입니다. 즉, 엔터티 클래스는 데이터베이스 테이블 또는 뷰와 1:1 매핑 관계만 갖습니다. 엔터티 클래스를 조인된 테이블에 매핑하는 등의 복잡한 매핑은 현재 지원되지 않습니다. 또한 이 디자이너는 단방향 코드 생성기입니다. 이는 디자이너 화면에서 변경한 내용만이 코드 파일에 반영된다는 의미입니다. 코드 파일에 수동으로 변경한 내용은 O/R 디자이너에 반영되지 않습니다. 코드 파일에서 수동으로 변경한 모든 내용은 디자이너를 저장하고 코드를 다시 생성할 때 덮어쓰여집니다. 사용자 코드를 추가하고 O/R 디자이너에서 생성된 클래스를 확장하는 방법에 대한 자세한 내용은 방법: O/R 디자이너에서 생성한 코드 확장을 참조하십시오. |
DataContext 만들기 및 구성
LINQ to SQL 클래스 항목을 프로젝트에 추가하고 O/R 디자이너를 열면 빈 디자인 화면에 구성할 수 있는 빈 DataContext가 표시됩니다. DataContext는 디자인 화면으로 끌어 온 첫째 항목이 제공하는 연결 정보를 사용하여 구성됩니다. 따라서 DataContext는 디자인 화면에 놓여진 첫째 항목의 연결 정보를 사용하여 구성됩니다. DataContext 클래스에 대한 자세한 내용은 DataContext 메서드(O/R 디자이너)를 참조하십시오.
데이터베이스 테이블 및 뷰에 매핑된 엔터티 클래스 만들기
서버 탐색기/데이터베이스 탐색기에서 O/R 디자이너로 데이터베이스 테이블 및 뷰를 끌어서 데이터베이스 테이블 및 뷰에 매핑되는 엔터티 클래스를 만들 수 있습니다. 앞 단원에서 설명한 것처럼 DataContext는 디자인 화면으로 끌어 온 첫째 항목에서 제공된 연결 정보를 사용하여 구성됩니다. 다른 연결을 사용하는 후속 항목이 O/R 디자이너에 추가되는 경우 DataContext에 대한 연결을 변경할 수 있습니다. 자세한 내용은 방법: 테이블 및 뷰에 매핑된 LINQ to SQL 클래스 만들기(O/R 디자이너)를 참조하십시오.
저장 프로시저 및 함수를 호출하는 DataContext 메서드 만들기
서버 탐색기/데이터베이스 탐색기에서 O/R 디자이너로 저장 프로시저 및 함수를 끌어 와 이들을 호출하는(해당 저장 프로시저 및 함수에 매핑됨) DataContext 메서드를 만들 수 있습니다. 저장 프로시저 및 함수는 O/R 디자이너에 DataContext의 메서드로 추가됩니다.
참고: |
---|
서버 탐색기/데이터베이스 탐색기에서 저장 프로시저 및 함수를 O/R 디자이너로 끌어 올 때 생성된 DataContext 메서드의 반환 형식은 항목을 놓은 위치에 따라 달라집니다. 자세한 내용은 DataContext 메서드(O/R 디자이너)를 참조하십시오. |
저장 프로시저를 사용하여 엔터티 클래스와 데이터베이스 간의 데이터를 저장하도록 DataContext 구성
앞에서 설명한 대로 저장 프로시저 및 함수를 호출하는 DataContext 메서드를 만들 수 있습니다. 또한 삽입, 업데이트 및 삭제를 수행하는 기본 LINQ to SQL 런타임 동작에 사용될 수 있는 저장 프로시저를 지정할 수 있습니다. 자세한 내용은 방법: 저장 프로시저를 할당하여 업데이트, 삽입 및 삭제 수행(O/R 디자이너)을 참조하십시오.
상속 및 O/R 디자이너
다른 개체와 마찬가지로 LINQ to SQL 클래스도 상속을 사용할 수 있고 다른 클래스에서 파생될 수 있습니다. 데이터베이스에서 상속 관계는 여러 가지 방법으로 만들어집니다. O/R 디자이너는 관계형 시스템에서 주로 구현되는 단일 테이블 상속 개념을 지원합니다. 자세한 내용은 방법: O/R 디자이너를 사용하여 상속 구성을 참조하십시오.
LINQ to SQL 쿼리
O/R 디자이너에서 만드는 엔터티 클래스는 LINQ(통합 언어 쿼리)와 함께 사용되도록 설계된 것입니다. 자세한 내용은 방법: 정보 쿼리(LINQ to SQL)를 참조하십시오.
생성된 DataContext와 엔터티 클래스 코드를 별도의 네임스페이스로 분리
O/R 디자이너는 DataContext에 컨텍스트 네임스페이스 및 엔터티 네임스페이스 속성을 제공합니다. 이들 속성은 DataContext 및 엔터티 클래스 코드가 어떤 네임스페이스로 생성되는지를 결정합니다. 기본적으로 이들 속성은 비어 있으며 DataContext 및 엔터티 클래스는 응용 프로그램의 네임스페이스로 생성됩니다. 코드를 응용 프로그램의 네임스페이스가 아닌 다른 네임스페이스로 생성하려면 컨텍스트 네임스페이스 및/또는 엔터티 네임스페이스 속성에 값을 입력합니다.
참고 항목
작업
연습: LINQ to SQL 클래스 만들기(O/R 디자이너)
방법: 저장 프로시저를 할당하여 업데이트, 삽입 및 삭제 수행(O/R 디자이너)