다음을 통해 공유


방법: 클래스 라이브러리에 정의된 모델 사용

이 항목에서는 Visual Studio 2008 클래스 라이브러리 프로젝트에 EDM이 정의되어 있을 때 프로젝트에서 EDM(엔터티 데이터 모델)을 사용하는 방법에 대해 설명합니다.

이 항목의 첫 번째 절차에서는 ASP.NET 웹 사이트 프로젝트가 아닌 프로젝트에서 클래스 라이브러리에 정의된 EDM을 사용하는 방법에 대해 설명합니다. 두 번째 절차에서는 ASP.NET 웹 사이트 프로젝트에서 클래스 라이브러리에 정의된 EDM을 사용하는 방법에 대해 설명합니다.

ASP.NET 웹 사이트 프로젝트가 아닌 프로젝트에서 클래스 라이브러리에 정의된 EDM을 사용하려면

  1. Visual Studio에서 Visual C# 또는 Visual Basic 클래스 라이브러리 프로젝트를 만듭니다.

    Visual Studio에서 프로젝트를 만드는 방법에 대한 자세한 내용은 방법: 솔루션 및 프로젝트 만들기를 참조하십시오.

  2. 클래스 라이브러리 프로젝트에 EDM을 추가합니다.

    새 EDM을 만들고 프로젝트에 추가하는 방법에 대한 자세한 내용은 방법: 새 엔터티 데이터 모델 만들기를 참조하십시오. 기존 EDM을 프로젝트에 추가하는 방법에 대한 자세한 내용은 방법: 기존 엔터티 데이터 모델 추가를 참조하십시오.

  3. ASP.NET 웹 사이트 프로젝트가 아닌 새 프로젝트를 기존 솔루션에 추가합니다.

    기존 솔루션에 프로젝트를 추가하는 방법에 대한 자세한 내용은 방법: 다중 프로젝트 솔루션 만들기를 참조하십시오.

  4. 클래스 라이브러리 프로젝트가 아닌 새로 추가한 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.

    참조 추가 대화 상자가 나타납니다.

  5. 참조 추가 대화 상자의 프로젝트 탭을 클릭하고 해당 클래스 라이브러리 프로젝트를 선택합니다. 확인을 클릭합니다.

  6. 클래스 라이브러리 프로젝트가 아닌 새로 추가한 프로젝트를 다시 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.

  7. 참조 추가 대화 상자의 .NET 탭을 클릭하고 System.Data.Entity를 선택합니다. 확인을 클릭합니다.

  8. 클래스 라이브러리 프로젝트의 App.Config 파일을 엽니다.

  9. App.Config 파일의 연결 문자열 섹션을 강조 표시하고 마우스 오른쪽 단추를 클릭한 다음 복사를 선택합니다. 예를 들어 다음과 같은 코드를 복사합니다.

    <add name="SchoolEntities" 
               connectionString="metadata=res://*/School.csdl|
                                          res://*/School.ssdl|
                                          res://*/School.msl;
                                 provider=System.Data.SqlClient;
                                 provider connection string=&quot;
                                 Data Source=(local);
                                 Initial Catalog=School;
                                 Integrated Security=True;
                                 MultipleActiveResultSets=True&quot;" 
               providerName="System.Data.EntityClient" />
    
  10. 새로 추가한 프로젝트의 App.Config 파일을 열고 복사한 연결 문자열 정보를 <connectionStrings> 노드에 붙여넣습니다.

    Note참고

    프로젝트에 App.Config 파일이 없으면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 선택하여 추가할 수 있습니다. 열리는 대화 상자에서 응용 프로그램 구성 파일을 선택하고 확인을 클릭합니다.

이제 새로 추가한 프로젝트에서 클래스 라이브러리 프로젝트에 정의된 EDM을 사용할 코드를 작성할 수 있습니다.

Note참고

솔루션을 빌드하기 전에 새로 추가한 프로젝트를 시작 프로젝트로 설정해야 할 수도 있습니다. 이렇게 하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택합니다.

ASP.NET 웹 사이트 프로젝트에서 클래스 라이브러리에 정의된 EDM을 사용하려면

  1. Visual Studio에서 Visual C# 또는 Visual Basic 클래스 라이브러리 프로젝트를 만듭니다.

    Visual Studio에서 프로젝트를 만드는 방법에 대한 자세한 내용은 방법: 솔루션 및 프로젝트 만들기를 참조하십시오.

  2. 클래스 라이브러리 프로젝트에 EDM을 추가합니다.

    새 EDM을 만들고 프로젝트에 추가하는 방법에 대한 자세한 내용은 방법: 새 엔터티 데이터 모델 만들기를 참조하십시오. 기존 EDM을 프로젝트에 추가하는 방법에 대한 자세한 내용은 방법: 기존 엔터티 데이터 모델 추가를 참조하십시오.

  3. ASP.NET 웹 사이트 프로젝트를 기존 솔루션에 추가합니다.

    기존 솔루션에 프로젝트를 추가하는 방법에 대한 자세한 내용은 방법: 다중 프로젝트 솔루션 만들기를 참조하십시오.

  4. ASP.NET 웹 사이트 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.

    참조 추가 대화 상자가 나타납니다.

  5. 참조 추가 대화 상자의 .NET 탭을 클릭하고 System.Data.Entity를 선택합니다. 확인을 클릭합니다.

  6. 다음 단계는 ASP.NET 웹 사이트 프로젝트에서 클래스 라이브러리를 참조하는 것입니다. 다음 두 가지 방법으로 이 작업을 수행할 수 있습니다.

    1. 솔루션 탐색기에서 ASP.NET 웹 사이트 프로젝트를 마우스 오른쪽 단추로 클릭하고 참조 추가를 선택합니다.

      참조 추가 대화 상자가 나타납니다.

    2. 참조 추가 대화 상자의 프로젝트 탭을 클릭하고 해당 클래스 라이브러리 프로젝트를 선택합니다. 확인을 클릭합니다.

    - 또는 -

    1. 솔루션 탐색기에서 클래스 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드를 선택합니다.

      클래스 라이브러리 어셈블리가 프로젝트의 bin\Debug 폴더에 추가됩니다.

    2. ASP.NET 웹 사이트 프로젝트를 마우스 오른쪽 단추로 클릭하고 ASP.NET 폴더 추가를 선택합니다. Bin을 선택합니다.

      Bin 폴더가 프로젝트에 추가됩니다.

    3. Windows 탐색기에서 클래스 라이브러리 프로젝트의 bin\Debug 폴더로 이동합니다. 프로젝트 어셈블리(<project_name>.dll 파일)를 마우스 오른쪽 단추로 클릭하고 복사를 선택합니다.

    4. 솔루션 탐색기에서 ASP.NET 웹 사이트 프로젝트 아래의 Bin 폴더를 마우스 오른쪽 단추로 클릭하고 붙여넣기를 선택합니다.

  7. 다음 단계는 ASP.NET 웹 사이트 프로젝트에서 모델 및 매핑 파일을 사용할 수 있도록 하는 것입니다. 다음 단계에 설명된 것처럼 모델 및 매핑 파일을 클래스 라이브러리 어셈블리에 리소스로 포함하여 이 작업을 수행할 수 있습니다. 대체 방법은 이 항목의 끝에 있는 절차("매핑 및 메타데이터 파일을 ASP.NET 웹 사이트 프로젝트로 복사하려면")를 참조하십시오.

    1. 클래스 라이브러리 프로젝트의 App.Config 파일을 엽니다.

    2. 연결 문자열 정보를 강조 표시하고 마우스 오른쪽 단추를 클릭한 다음 복사를 선택합니다. 예를 들어 다음과 같은 코드를 복사합니다.

      <add name="SchoolEntities" 
                 connectionString="metadata=res://*/School.csdl|
                                            res://*/School.ssdl|
                                            res://*/School.msl;
                                   provider=System.Data.SqlClient;
                                   provider connection string=&quot;
                                   Data Source=(local);
                                   Initial Catalog=School;
                                   Integrated Security=True;
                                   MultipleActiveResultSets=True&quot;" 
                 providerName="System.Data.EntityClient" />
      
    3. ASP.NET 웹 사이트 프로젝트의 Web.config 파일을 열고 복사한 연결 문자열 정보를 <connectionStrings> 노드에 붙여넣습니다.

이제 ASP.NET 웹 사이트 프로젝트에서 클래스 라이브러리 프로젝트에 정의된 EDM을 사용할 코드를 작성할 수 있습니다.

Note참고

솔루션을 빌드하기 전에 새로 추가한 프로젝트를 시작 프로젝트로 설정해야 할 수도 있습니다. 이렇게 하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택합니다.

ASP.NET 웹 사이트 프로젝트에 매핑 및 메타데이터 파일 복사

다음 절차에서는 모델 및 매핑 파일을 ASP.NET 웹 사이트 프로젝트로 복사하는 두 가지 옵션에 대해 설명합니다. 여기서 설명하는 두 방법은 모두 위 절차의 7단계 대신 사용할 수 있습니다. 첫 번째 절차에서는 ASP.NET 웹 사이트 프로젝트의 Bin 폴더로 파일을 복사하는 방법에 대해 설명하고, 두 번째 절차에서는 App_Data 폴더로 파일을 복사하는 방법에 대해 설명합니다. 두 옵션을 하나를 선택하는 경우 모델 및 매핑 파일을 클래스 라이브러리 어셈블리에 리소스로 포함하지 마십시오.

매핑 및 메타데이터 파일을 ASP.NET 웹 사이트 프로젝트의 Bin 폴더로 복사하려면

  1. 클래스 라이브러리 프로젝트에서 .edmx 파일을 두 번 클릭합니다. .edmx 파일이 ADO.NET 엔터티 데이터 모델 디자이너(Entity Designer)에서 열립니다.

  2. 디자인 화면의 빈 영역을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  3. 속성 창에서 메타데이터 아티팩트 처리 속성의 값을 출력 디렉터리로 복사로 설정합니다. 이 값을 선택하면 Entity Designer에서 클래스 라이브러리의 App.Config 파일에 있는 연결 문자열이 상대 파일 경로를 갖도록 변경합니다.

  4. 솔루션 탐색기에서 클래스 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드를 선택합니다.

  5. Windows 탐색기에서 클래스 라이브러리 출력 디렉터리(bin\Debug 폴더)로 이동하여 .csdl, .ssdl 및 .msl 파일을 복사합니다.

  6. ASP.NET 웹 사이트 프로젝트 아래의 Bin 폴더를 마우스 오른쪽 단추로 클릭하고 붙여넣기를 선택합니다.

    Note참고

    프로젝트에 Bin 폴더가 없으면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 ASP.NET 폴더 추가를 가리킨 다음 Bin을 선택하여 추가할 수 있습니다.

  7. 클래스 라이브러리 프로젝트의 App.Config 파일을 엽니다. 연결 문자열 정보를 강조 표시하고 마우스 오른쪽 단추를 클릭한 다음 복사를 선택합니다.

  8. ASP.NET 웹 사이트 프로젝트의 Web.config 파일을 열고 복사한 연결 문자열 정보를 <connectionStrings> 노드에 붙여넣습니다.

  9. ~\bin\ 접두사를 사용하여 연결 문자열의 메타데이터 항목을 변경합니다. 예를 들어 복사 및 수정한 문자열 항목은 다음과 같이 나타나야 합니다.

    <add name="SchoolEntities" 
             connectionString="metadata=~\bin\School.csdl|
                                        ~\bin\School.ssdl|
                                        ~\bin\School.msl;
                               provider=System.Data.SqlClient;
                               provider connection string=&quot;
                               Data Source=(local);
                               Initial Catalog=School;
                               Integrated Security=True;
                               MultipleActiveResultSets=True&quot;" 
             providerName="System.Data.EntityClient" />
    

모델 및 매핑 파일을 ASP.NET 웹 사이트의 App_Data 폴더로 복사하려면

  • 모델 및 매핑 파일을 App_Data 폴더로 복사하는 단계는 Bin 폴더로 복사하는 단계와 유사합니다. 하지만 다음 두 가지 중요한 차이점이 있습니다.

    • 위의 6단계에서 .csdl, .ssdl 및 .msl 파일을 Bin 폴더 대신 ASP.NET 웹 사이트 프로젝트의 App_Data 폴더로 복사해야 합니다.

      참고   프로젝트에 App_Data 폴더가 없으면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 ASP.NET 폴더 추가를 가리킨 다음 App_Data를 선택하여 추가할 수 있습니다.

    • 클래스 라이브러리의 App.Config 폴더에 있는 연결 문자열 정보를 ASP.NET 웹 사이트의 Web.config 파일로 복사한 후(위의 7단계 및 8단계) |DataDirectory| 접두사를 사용하여 메타데이터 항목을 변경합니다. 예를 들어 복사 및 수정한 문자열 항목은 다음과 같이 나타나야 합니다.

      <add name="SchoolEntities" 
               connectionString="metadata=|DataDirectory|\School.csdl|
                                          |DataDirectory|\School.ssdl|
                                          |DataDirectory|\School.msl;
                                 provider=System.Data.SqlClient;
                                 provider connection string=&quot;
                                 Data Source=(local);
                                 Initial Catalog=School;
                                 Integrated Security=True;
                                 MultipleActiveResultSets=True&quot;" 
               providerName="System.Data.EntityClient" />
      

참고 항목

기타 리소스

Entity Designer를 사용한 배포 작업
엔터티 데이터 모델 도구 작업
ADO.NET 엔터티 데이터 모델 디자이너 시나리오
연결 문자열(Entity Framework)