0

먼저 마이 그 레이션이 활성화 된 Entity 프레임 워크 5 코드를 사용합니다. 내 모델 클래스에 많은 변경을가 했으므로 모든 변경 후에 데이터베이스를 업데이트했기 때문에 너무 많은 마이그레이션 클래스가 있습니다. 이제 데이터베이스를 다시 만들어야하는 경우 update-database 명령을 한 번만 실행할 수 있도록 모든 업데이트를 병합하여 "초기 클래스"또는 2를 얻고 싶습니다. 코드가 없으면 (너무 무겁습니까), 예를 들어 명령과 관련이 있습니까? 감사합니다. .EF 5 - 코드 첫 번째 마이 그 레이션 최적화

답변

1

솔루션은 데이터베이스에 기존 데이터를 유지할 것인지 (프로덕션 데이터베이스가 필수적이라면) 반드시 데이터베이스를 삭제할 수 있습니다. 데이터베이스가

먼저 떨어 뜨린 할 수

I. Cuurrent 당신은 당신이 하나의 마이그레이션 단계를해야합니다 다음 명령을

add-migration Initial 

이 방법을 실행하는 모든 마이그레이션 단계를 삭제하고 현재 데이터베이스를 삭제해야 제비 뽑기 대신에.

II. 데이터를 보관해야합니다.

먼저 솔루션의 기본 데이터베이스로 설정된 현재 데이터베이스의 백업을 만든 다음 데이터베이스를 삭제합니다. 그러면 추가 마이그레이션 명령을 실행할 때 Entity Framework는 마이그레이션이 아직 적용되지 않았습니다.

이렇게하면 첫 번째 부분에서 설명한대로 단계를 수행 한 다음 이니셜이라는 마이그레이션 단계를 하나만 갖게됩니다. 이 실행 후

update-database 

명령 현재 사용자의 모델과 일치하는 데이터베이스를 만들지 만 __MigrationHistory 테이블의 한 행만 사용하십시오. __MigrationHistory 테이블에서이 행을 저장하십시오.

이제 방금 백업 한 데이터베이스를 복원하고 __MigrationHistory 테이블의 모든 행을 삭제 한 다음 이전에 저장 한 행을 삽입 할 수 있습니다. 이 작업이 끝나면 Entity Framework는 데이터베이스와 모델이 최신이라고 생각하고 이는 마이그레이션 단계를 처음 실행하면 모든 데이터를 유지할 수 있다는 의미입니다.

물론 여러 데이터베이스로이 작업을 수행하려면 이러한 단계를 한 번만 수행하고 __MigrationHistory 테이블에서 현재 행을 삭제하고 초기 마이그레이션 단계의 새 행을 삽입하기 만하면되는 다른 데이터베이스에 대해서만 수행하면됩니다.

+0

답해 주셔서 감사하지만 마지막 부분을 이해하지 못합니다. 현재 데이터베이스를 삭제하면 새 데이터베이스와 함께 __MigrationHistory 테이블을 어떻게 사용할 수 있습니까? – Llm

+0

내 게시물을 좀 더 자세하게 편집했으며 이제는 수행 할 작업에 대한 초안이 아닌 모든 단계를 포함합니다. –

+0

감사합니다. – Llm

관련 문제