EF6 EDMX 기반 모델을 EF Core로 이식Porting an EF6 EDMX-Based Model to EF Core

EF Core는 모델에 대한 EDMX 파일 형식을 지원하지 않습니다.EF Core does not support the EDMX file format for models. 이러한 모델을 이식하기 위한 최고의 옵션은 애플리케이션의 데이터베이스에서 새 코드 기반 모델을 생성하는 것입니다.The best option to port these models, is to generate a new code-based model from the database for your application.

EF Core NuGet 패키지 설치Install EF Core NuGet packages

Microsoft.EntityFrameworkCore.Tools NuGet 패키지를 설치합니다.Install the Microsoft.EntityFrameworkCore.Tools NuGet package.

모델 다시 생성Regenerate the model

이제 리버스 엔지니어링 기능을 사용하여 기존 데이터베이스를 기반의 모델을 만들 수 있습니다.You can now use the reverse engineer functionality to create a model based on your existing database.

패키지 관리자 콘솔(도구 –> NuGet 패키지 관리자 -> 패키지 관리자 콘솔)에서 다음 명령을 실행합니다.Run the following command in Package Manager Console (Tools –> NuGet Package Manager –> Package Manager Console). 테이블의 하위 집합 등을 스캐폴드하기 위한 명령 옵션은 패키지 관리자 콘솔(Visual Studio)을 참조하세요.See Package Manager Console (Visual Studio) for command options to scaffold a subset of tables etc.

Scaffold-DbContext "<connection string>" <database provider name>

예를 들어 SQL Server LocalDB 인스턴스의 블로깅 데이터베이스에서 모델을 스캐폴드하기 위한 명령은 다음과 같습니다.For example, here is the command to scaffold a model from the Blogging database on your SQL Server LocalDB instance.

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer

EF6 모델 제거Remove EF6 model

이제 애플리케이션에서 EF6 모델을 제거합니다.You would now remove the EF6 model from your application.

EF Core 및 EF6는 동일한 애플리케이션에서 함께 사용할 수 있으므로 EF6 NuGet 패키지(EntityFramework)가 설치하는 것은 괜찮습니다.It is fine to leave the EF6 NuGet package (EntityFramework) installed, as EF Core and EF6 can be used side-by-side in the same application. 그러나 애플리케이션의 영역에서 EF6를 사용하지 않으려는 경우에는 패키지를 제거하면 주의가 필요한 코드 조각에 컴파일 오류를 제공할 수 있습니다.However, if you aren't intending to use EF6 in any areas of your application, then uninstalling the package will help give compile errors on pieces of code that need attention.

코드 업데이트Update your code

이 시점에서 컴파일 오류를 해결하고 코드를 검토하여 EF6과 EF Core 간의 동작 변경이 어떤 영향을 주는지 확인하는 것이 중요합니다.At this point, it's a matter of addressing compilation errors and reviewing code to see if the behavior changes between EF6 and EF Core will impact you.

포트 테스트Test the port

애플리케이션이 컴파일되는 것만으로 EF Core에 성공적으로 이식되었음을 의미하지는 않습니다.Just because your application compiles, does not mean it is successfully ported to EF Core. 애플리케이션의 모든 영역을 테스트하여 어떠한 동작 변경도 애플리케이션에 부정적인 영향을 주지 않았음을 확인해야 합니다.You will need to test all areas of your application to ensure that none of the behavior changes have adversely impacted your application.