login register Sysop! about ME  
qrcode
    최초 작성일 :    2014년 01월 22일
  최종 수정일 :    2014년 01월 22일
  작성자 :    Jake
  편집자 :    Jake (류 지형)
  읽음수 :    20,463

강좌 목록으로 돌아가기

필자의 잡담~

이번 강좌는 엔티티 프레임워크가 어떻게 데이터베이스를 찾아 가는지 혹은, 생성하는지에 대해 설명하고 있습니다. 엔티티 프레임워크를 한번이라도 사용해보신 분들께는 너무 쉬운 강좌일 것 같네요~
본 번역문서는 개인적인 취지로 번역되어 제공되는 문서로, 원문을 비롯한 모든 저작권은 마이크로소프트사에 있습니다. 마이크로소프트사의 요청이 있을 경우, 언제라도 게시가 중단될 수 있습니다. 본 번역문서에는 오역이 포함되어 있을 수 있으며 주석도 번역자 개인의 견해일뿐입니다. 마이크로소프트사는 본 문서의 번역된 내용에 대해 일체의 보장을 하지 않습니다. 번역이 완료된 뒤에도 제품이 업그레이드 되거나 기능이 변경됨에 따라 원문도 변경되거나 보완되었을 수 있으므로 참고하시기 바랍니다.

원문: http://www.asp.net/mvc/tutorials/mvc-5/introduction/creating-a-connection-string

이전 강좌에서 생성한 MovieDBContext 클래스는 데이터베이스를 연결하고 Movie 객체가 데이터베이스 레코드에 매핑되는 일련의 작업을 처리합니다. 아마도 여러분이 궁금해할 문제 중 하나는 연결할 데이터베이스를 어떻게 지정하는가일 것입니다. 사실, 명시적으로 데이터베이스를 지정할 필요는 없습니다. 엔티티 프레임워크가 LocalDB 를 사용하도록 자동으로 지정하기 때문입니다. 이번 강좌에서는 개발자가 명시적으로 연결 문자열을 어플리케이션의 Web.config 파일에 추가하는 것에 대해 알아보겠습니다.

SQL 서버 익스프레스 LocalDB

SQL 서버 익스프레스 데이터베이스 엔진은 요구가 있을 때 시동되며 user mode(역자 주; Windows 운영체제의 kernel mode 에 대비되는 개념. User mode에서 동작하는 어플리케이션은 메모리 접근에 제한적임)에서 동작합니다. LocalDB는 SQL 서버 익스프레스 데이터베이스 엔진의 경량 버전입니다. LocalDB는 SQL 서버 익스프레스의 특별 수행 모드에서 동작하는데 이런 환경을 통해 개발자가 .mdf 파일 같은 데이터베이스와 작업할 수 있게 됩니다. LocalDB 데이터베이스 파일들은 보통 웹 프로젝트의 App_Data 폴더에 보관됩니다.

SQL 서버 익스프레스를 운영환경에서 사용하는 것은 추천되지 않습니다. 더욱이 LocalDB는 IIS와 동작하도록 설계되지 않았으므로 사용할 수 없습니다. 다행이도 LocalDB 데이터베이스는 SQL 서버 또는 SQL 애저로 쉽게 마이그레이션됩니다.

비주얼 스튜디오 2013과 2012에서 LocalDB는 비주얼 스튜디오 설치시 기본으로 설치됩니다.

엔티티 프레임워크가 연결 문자열을 찾을 때, 컨텍스트 클래스(이 프로젝트에서는 MovieDBContext)의 이름과 같은 연결 문자열을 기본적으로 찾습니다. 자세한 정보는 SQL Server Connection Strings for ASP.NET Web Applications를 참조하세요.

아래와 같이 어플리케이션의 루트에 있는 Web.config 파일을 엽니다. (Views 폴더에도 존재하니 유의하세요)

<connectionStrings> 요소를 찾습니다.

다음의 연결 문자열을 Web.config 파일의 <connectionStrings> 요소에 추가합니다.

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;
        Integrated Security=True" 
   providerName="System.Data.SqlClient" 
/> 

다음은 새 연결 문자열이 추가된 모습입니다.

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;
        AttachDbFilename=|DataDirectory|\aspnet-MvcMovie-20130603030321.mdf;
        Initial Catalog=aspnet-MvcMovie-20130603030321;Integrated Security=True" 
        providerName="System.Data.SqlClient" />
    <add name="MovieDBContext"    connectionString="Data Source=(LocalDB)\v11.0;
        AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
        providerName="System.Data.SqlClient"
/>

두개의 연결 문자열은 매우 유사합니다. 첫번째 것은 DefaultConnection 라는 이름을 갖고 어플리케이션의 사용자를 관리하는 멤버쉽 데이터에 접근하는데 사용됩니다. 여러분이 방금 추가한 연결 문자열은 App_Data 폴더에 위치한 Movie.mdf 라는 LocalDB 데이터베이스를 지정하고 있습니다. 이 강좌에서는 멤버쉽 데이터베이스를 사용하지 않을 겁니다. 멤버쉽, 인증, 보안과 관련된 자세한 사항은 저자의 다른 강좌, Deploy a Secure ASP.NET MVC app with Membership, OAuth, and SQL Database to a Windows Azure Web Site 를 참고하세요.

연결 문자열의 이름은 DbContext 클래스의 이름과 반드시 일치해야 합니다.

using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

사실, MovieDBContext 에 해당하는 연결 문자열을 꼭 추가할 필요는 없습니다. 여러분이 연결 문자열을 지정하지 않으면 DbContext 클래스의 정규화된 이름 (이 프로젝트의 경우, MvcMovie.Models.MovieDBContext) 으로 엔티티 프레임워크가 사용자 디렉토리에 LocalDB 데이터베이스를 생성합니다. 데이터베이스의 이름은 .MDF 확장자를 붙여서 여러분이 원하는 대로 지정할 수 있습니다. 예를 들면, MyFilmes.mdf 와 같이 만들 수 있습니다.

다음 강좌에서는 영화 데이터를 보여주고 사용자로 하여금 새로운 영화를 추가하게 하는 MoviesController 컨트롤러를 작성하도록 하겠습니다.


authored by


 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})