블레이저(.NET 7.0) 기준으로, EF Core를 통해 MySQL을 사용하려면 필요한 작업이 몇 있습니다.
먼저 EF Core를 사용하기 위해 DbContext 클래스를 생성해야 합니다. DbContext는 데이터베이스에 접근하기 위한 데이터베이스의 사본을 제공합니다.
그리고 Program.cs에 다음과 같이 connectionString을 추가합니다.
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");builder.Services.AddDbContext<ExampleAppDbContext>(options => options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)));
이때 DefaultConnection는 프로젝트 경로의 appsettings.json에서 아래처럼 추가하면 됩니다.
"ConnectionStrings": { "DefaultConnection": "Server=호스트; port=포트; database=데이터베이스 이름; user=데이터베이스에 접근할 수 있는 유저 이름; password=인증 비밀번호; Persist Security Info=false; Connect Timeout=300;" }
이후 DbContext 클래스에 테이블 필드 추가하고 비주얼 스튜디오의 패키지 매니저에서 'add-migration 이름' 으로 마이그레이션 하고, update-database 하면 됩니다.
참고로 EF Core는 ORM입니다.
아, 그리고 마이그레이션을 하는 CLI 혹은 패키지는 아래와 같은 너겟 패키지가 필요합니다. 아래 같은 경우는 닷넷에서 제공하는 기본 인증 클래스 IdentityDbContext 클래스를 사용해서 'Microsoft.AspNetCore.Identity.EntityFrameworkCore' 이고, 기본 DbContext 클래스 사용시 'Microsoft.AspNetCore.EntityFrameworkCore' 이거입니다.
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="7.0.1" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.1" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.1" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.1">
그리고 제가 마지막으로 확인했을 때 포멜로 MySQL 릴리즈 버전에서 EFCore 7.0을 지원하지 않아 베타 버전을 사용해야 합니다.
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="7.0.0-silver.1" />
베타 버전은 너겟 갤러리에서 이름을 통해 검색하고 패키지 매니저를 통해 다운로드하면 됩니다.