2014-07-21 2 views
0

내가 본 모든 EF 자습서에서는 LocalDB 또는 SQL Express를 EF로 코드 우선 접근에 사용해야합니다.SQL 인스턴스의 Entity Framework

코드 우선 EF를 사용하여 기존 SQL DB (2014) 인스턴스에 연결하고 EF에서 스키마를 데이터베이스에 만들 수 있습니까? 아니면 프로덕션 환경으로 전환 할 때 exsiting matching schema를 가진 DB에 연결해야합니까?

개발자 용으로 LocalDB를 사용하는 것이 좋지만 프로덕션으로 배포 할 때 실제 SQL 데이터베이스와 기존 SQL DB에 연결하고 싶습니다. 스키마를 수동으로 EF 모델과 일치하도록 만든 DB에 연결하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

+1

빠른 설치와 정상 설치간에 차이점이 없습니다. 연결 문자열을 실제 데이터베이스로 설정하고 어떤 일이 발생했는지 확인해 보셨습니까? –

+0

SQL 데이터베이스의 localhost 인스턴스에 연결을 시도했지만 정상적으로 작동하지만 모델을 업데이트하면 DB 스키마가 EF로 자동 업데이트되지 않기 때문에 중단됩니다 (Mgmt Studio에 가서 조정해야 함). EF 모델과 일치하는 스키마). – Jesse

+0

LocalDb 데이터베이스의 스키마를 어떻게 업데이트합니까? – DavidG

답변

1

Entity Framework의 코드 첫 마이그레이션 (http://msdn.microsoft.com/en-us/data/jj591621.aspx)을 사용해 보겠습니다.

짧은 버전 :

1) DbContext에서, 이것은 어떤 데이터베이스가 존재하지 않는 경우 EF는 DB를 만들 수 Database.SetInitializer<YourDbContext>(new CreateDatabaseIfNotExists<YourDbContext>());

유사한 CreateDatabaseIfNotExists로 초기화를 설정 (응용 프로그램이 처음 실행) .

2) 다음으로 패키지 관리자 콘솔로 이동하여 데이터베이스 프로젝트 (별도 인 경우)를 선택하고 Enable-Migrations 명령을 입력하십시오. 이것은 일부 이주 스캐 폴딩과 초기 이주를 작성합니다.

이 때마다 다음 단계를 수행 그때부터 코드에서 데이터베이스 모델을 변경 :

3) 당신은 당신의 코드 첫 번째 모델을 변경 한 후, 패키지 관리자 콘솔로 이동 데이터베이스 프로젝트를 선택, Add-Migration MigrationNameHere 명령을 입력하십시오. 이렇게하면 데이터베이스에 적용 할 수있는 새로운 개별 이주가 준비됩니다. 이 명령은 현재 연결 문자열 config에있는 db에 대해 실행됩니다.

4) 마이그레이션을 적용하고 데이터베이스를 새 스키마로 업데이트하려면 Update-Database 명령을 입력하십시오. 모든 것이 잘되면 데이터베이스가 새 스키마로 (데이터와 함께) 업데이트 될 것입니다! 이제 DB 오류없이 MVC 프로젝트를 실행할 수 있습니다.

이것은 db-migrations의 매우 기본적인 버전입니다. 더미 프로젝트에서 먼저 시도하고 데이터를 백업하십시오. 변경 사항이 복잡하거나 특수한 데이터 이전이 필요한 경우 데이터베이스 업데이트를 수행하기 전에 생성 된 Migrations 폴더에서 스캐 폴딩 된 마이그레이션 코드를 편집 할 수 있습니다.

희망이 도움이됩니다.