이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 37510|회답: 1

[출처] EF 6 코드퍼스트의 데이터베이스 초기화 전략

[링크 복사]
게시됨 2019. 4. 17. 오후 3:56:46 | | |
Code-First 애플리케이션을 처음 실행한 후 이미 데이터베이스를 만들었는데, 두 번째로 시작하면 데이터베이스는 무엇인가요? 애플리케이션이 실행될 때마다 새로운 데이터베이스가 생성되나요? 생산 환경은 어떤가요? 도메인 모델을 변경할 때 데이터베이스도 어떻게 변경하나요? 이러한 상황을 처리하려면 데이터베이스 초기화 정책 중 하나를 사용해야 합니다.

데이터베이스 초기화 전략은 네 가지가 있습니다:

  • CreateDatabaseIfNotExists:이것은기본값초기화 절차. 이름에서 알 수 있듯이, 구성에 따라 데이터베이스가 존재하지 않으면 데이터베이스를 생성합니다. 하지만 모델 클래스를 변경한 후 이 초기화자로 애플리케이션을 실행하면 예외가 발생합니다.
  • DropCreateDatabaseIfModelChanges: 만약 모델 클래스(엔티티 클래스)가 변경되었다면, 이 초기화자는 기존 데이터베이스를 삭제하고 새 데이터베이스를 생성합니다. 그래서 모델 클래스가 바뀌어도 데이터베이스 스키마를 유지할 걱정을 할 필요가 없습니다.
  • DropCreateDatabaseAlways: 이름 그대로 이 초기화자는 모델 클래스가 변경되었든 아니든 애플리케이션을 실행할 때마다 기존 데이터베이스를 삭제합니다. 예를 들어 애플리케이션을 개발할 때처럼 매번 새로운 데이터베이스가 필요할 때 유용합니다.
  • 커스텀 데이터베이스 초기화: 위의 조건이 요구사항에 맞지 않는다면, 또는 위 초기화기를 사용해 다른 데이터베이스 초기화 과정을 수행하고 싶을 경우 직접 맞춤 초기화자를 만들 수도 있습니다.

위의 DB 초기화 전략 중 하나를 사용하려면 데이터베이스 컨텍스트 클래스의 클래스를 사용하여 DB 초기화자를 설정해야 합니다. 아래 참조와 같습니다:




아래와 같이 초기화 중 하나를 상속하여 사용자 지정 데이터베이스 초기화를 만들 수도 있습니다:




위 예시에서 SchoolDBInitializer는 CreateDatabaseIfNotExists에서 파생된 맞춤형 초기화 클래스입니다. 이로 인해 데이터베이스 초기화 코드와 컨텍스트 클래스가 분리됩니다.

구성 파일에서 DB 초기화기를 설정하세요

DB 초기화기는 설정 파일에서 설정할 수도 있습니다. 예를 들어, app.config에서 기본 초기 값을 설정하려면:




커스텀 데이터베이스 초기화기는 다음과 같이 설정할 수 있습니다:




DB 초기화 종료

애플리케이션의 데이터베이스 초기화 기능을 끌 수 있습니다.운영 환경에서 기존 데이터를 잃고 싶지 않다면, 초기화기를 종료할 수 있습니다, 다음과 같다:



설정 파일에서 초기화기를 끌 수도 있습니다. 예를 들어:








이전의:삽화 암호학 3판
다음:실리콘밸리 2018년 4월 취업 수업 영상
 집주인| 게시됨 2021. 2. 7. 오후 3:08:59 |
Entity Framework가 더 이상 유효하지 않은 상태로 시작__MigrationHistory 허용
https://www.itsvse.com/thread-3255-1-1.html

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com