'2022/12/05'에 해당되는 글 1건

  1. 2022.12.05 .net DB First 방식 Scaffold-DbContext 오류 대응

반응형

DB First방식으로 프로젝트를 진행해보고자 이리저리 알아보고 시도한 결과를 남기고자 한다.

먼저 셋팅을 하려면 nuget package manage에서 필요한 패키지를 설치하여야 한다.
예전 오래된 Visual Studio와 달리 2022에선 종속성에서 마우스 우측을 눌러 NuGet 패키지 관리메뉴를 호출해야 한다.

1. Microsoft.EntityFrameworkCore.Tools를 찾아 설치


2. DB엔진에 따라 추가로 설치해야 할 provider 다른데 아래처럼 각각 사용하고 있는 DB엔진에 맞는 provider를 추가로 설치

MSSQL : Microsoft.EntityFrameworkCore.SqlServer
MySQL : MySql.Data.EntityFrameworkCore
Oracle : Oracle.EntityFrameworkCore
SQLite : Microsoft.EntityFrameworkCore.Sqlite

이처럼 패키지를 설치하고 appsettings.json파일로 가서 DB Connection정보를 입력해 둔다.

  "CoreCodeFirst": {    "DBType":
    "mssql",
    "ConnectionString": "Server=dbip;DataBase=dbname;UId=myid;pwd=mypwd"
},

저장해주고
이제 DB First의 거진 마지막 단계인 모델(Model)과 컨텍스트 생성하기 단계.
패키지관리자콘솔 이란걸 실행해야 하는데 어디있는지 모르겠다 -_-
검색해보니 도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔로 불러올 수 있었다.

불러온 패키지 관리자 콘솔에서 아래처럼 입력 후 엔터를 치면 
Scaffold-DbContext 'Data Source=dbip;Initial Catalog=dbname;UId=myid;pwd=mypwd' Microsoft.EntityFrameworkCore.SqlServer

Build started...

Build succeeded.

가 나오더니
이런 에러가 튀어나온다.

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 신뢰되지 않은 기관에서 인증서 체인을 발급했습니다.)

아래처럼 명령어를 수정하여 실행하면
Scaffold-DbContext 'Data Source=dbip;Initial Catalog=dbname;TrustServerCertificate=True;UId=myid;pwd=mypwd' Microsoft.EntityFrameworkCore.SqlServer

Build started...

Build succeeded.

이후 오류 없이 실행되며 프로젝트에 컨텍스트가 생성됨을 발견할 수 있다.

반응형
Posted by Hippalus
,