별도의 마이그레이션 프로젝트 사용
DbContext
를 포함하는 프로젝트가 아닌 다른 프로젝트에 마이그레이션을 저장할 수 있습니다. 또한 이 전략을 사용하여 여러 마이그레이션 집합(예: 개발용 및 릴리스 간 업그레이드용)를 유지 관리할 수도 있습니다.
팁
GitHub에서 이 문서의 샘플을 볼 수 있습니다.
단계
새 클래스 라이브러리를 만듭니다.
DbContext 프로젝트에 참조 추가
마이그레이션 및 모델 스냅샷 파일을 클래스 라이브러리로 이동합니다.
팁
기존 마이그레이션이 없는 경우 DbContext를 포함하는 프로젝트에서 마이그레이션을 생성한 후 이동합니다. 마이그레이션 프로젝트에 기존 마이그레이션이 포함되어 있지 않으면 Add-Migration 명령이 DbContext를 찾을 수 없기 때문에 이 작업은 중요합니다.
마이그레이션 어셈블리 구성:
services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer( Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("WebApplication1.Migrations")));
startup 프로젝트에서 마이그레이션 프로젝트에 대한 참조를 추가합니다.
<ItemGroup> <ProjectReference Include="..\WebApplication1.Migrations\WebApplication1.Migrations.csproj" /> </ItemGroup>
이로 인해 순환 종속성이 발생하는 경우 migrations 프로젝트의 기본 출력 경로를 대신 업데이트할 수 있습니다.
<PropertyGroup> <BaseOutputPath>..\WebApplication1\bin\</BaseOutputPath> </PropertyGroup>
모든 작업을 올바르게 수행했다면 프로젝트에 새 마이그레이션을 추가할 수 있습니다.
dotnet ef migrations add NewMigration --project WebApplication1.Migrations
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET