1

엔티티 프레임 워크 코어를 사용하는 asp.net 코어 mvc 웹 사이트가 있습니다.데이터베이스에 이미 AspNetRoles라는 개체가 있습니다. (엔티티 프레임 워크 코어)

는 처음에 무슨 일이 있었 어떻게 모르겠지만, 오류 번번이 수는 : 모두 삭제 데이터베이스를 삭제 나는 결국

, "데이터베이스에 이미 AspNetRoles라는 이름의 객체가있다" 마이 그 레이션 .cs 파일과 처음부터 시작합니다.

나는 다음 을 시도했습니다 add-migration MyInitialMigration

같은 오류

내가 다시 데이터베이스를 삭제하고, 여전히 같은 오류

(마이그레이션을 추가하지 않고) 직접 update-database 시도

appsettings 구성 문자열을 새롭지 않은 기존 데이터베이스를 가리 키도록 변경하려고했습니다.

여전히 같은 오류!

는 이전 MVC5/EF6에이 오류가 발생했습니다이 대답과 같은 방법을 사용하여 해결 한 : There is already an object named in the database

-Add-Migration Initial -IgnoreChanges

그러나 -IgnoreChanges이 EFCore

또는 지원되지 않는 이전에 EF6에서 마이그레이션을 추가 한 다음 위/아래의 모든 항목을 삭제하고 빈 마이그레이션을 실행하여 해결했습니다. 이것은 EFCore에서 작동하지 않습니다

어떻게 계속할 수 있습니까? 내가 마이 그 레이션 테이블을 확인하고 그들은 매번 전체 데이터베이스를 만들었지 만 항상 비어 있습니다. 마이 그 레이션 테이블에 로그인하지 않은 것 같습니다.

답변

4

내 문제를 발견했습니다. EntityFrameworkConfigurationProvider에서 https://docs.asp.net/en/latest/fundamentals/configuration.html#example-entity-framework-settings

dbContext.Database.EnsureCreated();하고 초기화하는 것처럼 보이는 사람들의 둘 사이 CreateAndSaveDefaultValues

이있는 public override void Load()가 :

나는 EntityFramework에서 appSettings는을로드하려면이 튜토리얼을 따라했다 마이그레이션을 추적하지 않고 데이터베이스.

나는 이들을 주석 처리하고 마이그레이션을 실행했으며 정상적으로 작동했습니다. 다행히 마이그레이션을 실행할 때마다 주석을 달지 않아도됩니다./

0

방금 ​​동일한 문제가 있었으며 Database.EnsureCreated()가 마이그레이션을 사용하지 않는 것처럼 보입니다. Database.Migrate() 대신 방금 시도하고 작동하는 것처럼 보이지만 다른 마이그레이션을 시도 할 때 시간을 알려줍니다.