.Net Core 3.1 Entity Framework Core Database First 하는 방법

머리



.NetCore 3.1에서 MySQL에서 EntityFramework에서 DB 첫 번째를 시도한다면
공식적인 MySql.Data.EntityFrameworkCore가 3.1을 지원하지 않기 때문에 고생했습니다.

개발 환경



동작 환경은 cent7로 .NetCore3.1이지만 사용 툴의 관계로 2.1도 필요하게 된다.


해법(포인트)


  • Pomelo.EntityFrameworkCore 사용
  • DB를 읽고 모델을 생성한다.

    후일담 2020/12
    .Net5에서만 움직이기 시작했습니다.
    설치 방법은 htps : // / cs. mic로소 ft. 코 m / 자 jp / 에 f / 이것 / c ぃ / t t t
    명령으로 dotnet ef를 dotnet-ef로 설정하면 OK

    필요한 라이브러리는 dotnet add package ~~~~ 라는 명령으로 넣는 것이 정공법이지만
    귀찮기 때문에 csproj를 아래와 같이 해서 dotnet restore 하면 좋다
    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.2">
          <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
          <PrivateAssets>all</PrivateAssets>
        </PackageReference>
        <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.19" />
        <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="3.1.1" />
        <PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2" />
      </ItemGroup>
    
    </Project>
    

    라이브러리 복원이 완료되면 다음 명령을 실행하여 DB 모델을 생성합니다.
    ※접속 정보는 자신의 환경에 맞추는 것!
    dotnet ef dbcontext scaffold "Server=localhost; Port=3306; Database=schema; Uid=root; Pwd=password;" Pomelo.EntityFrameworkCore.MySql -o Models --context Context
    

    샘플 코드 : github
  • 좋은 웹페이지 즐겨찾기