끄적이는 메모장

[.NET Core 2.x] VS Code + MySQL 본문

C, C++, C#/C# ASP.NET

[.NET Core 2.x] VS Code + MySQL

밥보92 2018. 4. 4. 15:31
반응형

Web Applicaiton을 구성함에 있어 MySQL을 사용이 필요할 때 어떻게 해야할 지 공부한 것을 기록해 보려고 함

환경 : .NET Core 2.0 / C# / Visual Studio Code

참고(https://docs.microsoft.com/ko-kr/ef/core/providers/index - .NET Core 버전에 따른 지원 패키지)

 

1. MySQL ASP.NET Core 2.0 추가하기

- project.csproj 파일을 연다.

 

project.csproj

<ItemGroup>
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.2" /> 
  <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.0.1"/>
</ItemGroup>

 

다음과 같이 PackageReference에 Mysql을 사용하기 위한 라이브러리를 추가해준다.

 

2. DB 연결 정보 셋팅하기

- appsettings.json 파일에서 DB 정보를 셋팅해준다.

- server - 서버주소

- userid - DB 접속을 위한 id

- password - DB 접속을 위한 id에 대한 password

- database - DB 명

 appsettings.json

"ConnectionStrings": {
  "DefaultConnection":"server=localhost;uid=root;pwd=root123;Database=myDB;"
}

 

해당 DB 정보는 startup.cs에서 서비스가 시작되는 runtime에 읽어주게 된다.

 

3. 데이터 모델 및 컨텍스트 생성하기

- 데이터를 담을 모델을 셋팅

- 중요한 것은 꼭 Primary Key가 필요하므로 해당 컬럼으로 사용할 데이터도 함께 추가해 주어야 한다.

 Model.cs

public class OpenResponse
{
  public int id { get; set; } 
  public int isOpened { get; set; }
}

 

- DB와 통신에 이용할 컨텍스트 셋팅

Context.cs 

using Microsoft.EntityFrameworkCore;

 

public
class IsOpenContext : DbContext
{
  public IsOpenContext(DbContextOptions<IsOpenContext> options) : base(options)
  {
  }

  public DbSet<OpenResponse> OpenResponse { get; set; }
}

- 데이터 모델을 DB에 쓰거나 가져오는 역할을 담당한다.

 

4. startup.cs 셋팅하기

  startup.cs

using Microsoft.EntityFrameworkCore;

using Pomelo.EntityFrameworkCore.MySql;

 

public
void ConfigureServices(IServiceCollection services)
{
  services.AddDbContext<IsOpenContext>(options =>
         options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));

- 2에서 셋팅한 DB 정보를 Application이 start할 때 가져오기 위한 코드를 추가해준다.

- DefaultConnection이라는 config를 읽어와서 MySQL을 3에서 셋팅한 Context를 통해 사용하겠다고 하는 부분이다.

 

5. DB 셋팅

- 2에서 명시된 DB명, username, password를 사용

- table명은 모델명과 동일하게 해준다. -> OpenResponse

- 컬럼의 경우 꼭 primary key를 설정 해준다. !! 중요

 

** controller 만들어서 Get 명령 날려보면 확인 가능! 요 부분은 보시는 분들이 혹시나 있다면 각자 해보시길

 

반응형