새 마이그레이션을 추가하고 있지만이 메시지는 다음과 같습니다.
다음 명시 적 마이그레이션이 보류 중이므로 명시 적 마이그레이션을 생성 할 수 없습니다. [201203170856167_left]. 새 명시 적 마이그레이션을 생성하기 전에 보류중인 명시 적 마이그레이션을 적용하십시오.
아무도 나를 도울 수 있습니까?
답변
애플리케이션에 처리되지 않은 마이그레이션이 있으며 Update-Database
다른 마이그레이션을 추가하기 전에 실행 해야 함을 알려줍니다 .
답변
나는 같은 문제가 있었다. 분명히 엔티티 프레임 워크는 데이터베이스에 연결할 수 없을 때이 오류를 생성합니다. 따라서 다른 문제를 검색하기 전에 액세스 할 수 있는지 확인하십시오.
답변
패키지 관리자 콘솔에서 “update-database”를 실행하여 변경 사항을 데이터베이스에 푸시하거나 마이그레이션 폴더에서 보류중인 마이그레이션 파일 ([201203170856167_left])을 삭제 한 다음 “add-migration”을 다시 실행하여 편집 내용을 기반으로 새로운 마이그레이션을 만듭니다.
답변
이 오류는 마이그레이션이 더 이상 인식되지 않음을 의미 할 수도 있습니다. 이것은 Migrations.Configuration에서 ContextKey의 값을 변경 한 후 나에게 발생했습니다. 해결책은 단순히 데이터베이스 테이블 “__MigrationHistory”에서 ContextKey를 업데이트하는 것입니다 (또는 내가 추측하는 Configuration 클래스의 값을 되돌림). 애플리케이션의 ContextKey와 네임 스페이스가 일치해야합니다.
답변
1. 연결 문자열 / 연결 권한
연결 문자열을 다시 확인하십시오.
연결중인 사용자에게 여전히 읽기 [__MigrationHistory]
권한과 스키마 편집 권한 이 있는지 확인하십시오 .
통합 보안 (Windows Auth)을 사용하여 add-migration 명령을 직접 실행하도록 앱 또는 웹 구성 파일의 연결 문자열을 변경해 볼 수도 있습니다 .
예를 들면 :
connectionString="data source=server;initial catalog=db;persist security info=True;Integrated Security=SSPI;"
이 연결 문자열은 DbContext가있는 프로젝트의 App.config 파일에 저장됩니다.
2. 시작 프로젝트
명령 줄에서 시작 프로젝트를 지정하거나 DbContext
, Configuration
및 마이그레이션 폴더가 있는 프로젝트를 마우스 오른쪽 단추로 클릭하고 시작 프로젝트로 설정을 선택할 수 있습니다. 나는 진지하다. 이것은 실제로 도움이 될 수있다.
답변
같은 문제가 있었고 위의 답변에서 몇 가지 힌트로 해결할 수있었습니다.
- 패키지 관리자 콘솔에서 기본 프로젝트를 확인합니다 (마이그레이션 구성이있는 프로젝트를 가리 킵니다.
- startup-proj에 유효한 연결 문자열이있는 web.config가 있는지 확인하십시오 (또는
- 마이그레이션이있는 프로젝트에 유효한 연결 문자열이있는 app.config / web.config가 있는지 확인하십시오.
- DB에서 권한 확인 (연결 문자열에 구성된 사용자에 대해)
패키지 관리자 콘솔에서 “update-database -verbose”를 사용하여 마이그레이션이 연결을 시도하는보다 구체적인 정보를 얻으십시오. (내 경우에는 시작 프로젝트가 올바르게 설정되지 않았 음을 확인하는 데 도움이되었습니다 …)
답변
사용하지 않았다면 Update-Database
그냥 삭제할 수 있습니다. 업데이트를 실행 한 경우을 사용하여 롤백 Update-Database -TargetMigration "NameOfPreviousMigration"
한 다음 삭제합니다.
참조 :
http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
이 텍스트를 여기에서 직접 복사했습니다 . 마지막 마이그레이션 추가 명령을 실행 취소하려면 어떻게합니까?