무효 클릭 IP 추적 중...
c#

[c#] localdb에 EntityFramework 연결 하는 방법

꼬예 2022. 7. 19.
[c#] localdb에 EntityFramework 연결 하는 방법

 

 

이번 포스팅에서는 EntityFramework를 통해 localdb에 접속하는 방법에 대해 알아보도록 하겠습니다.

 

1. locadb에 테이블 생성

1) localdb 위치 확인

 

sql개체탐색기 클릭

 

보기 => SQL Server 개체 탐색기를 클릭하면 왼쪽 편에 SQL server 개체 탐색기 창이 뜰텐데요.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

여기서 SQL Server를 클릭해보면 현재 visual studio에 연결되어 있는 로컬 서버들이 보일것입니다. 

 

연결된 로컬서버

 

2) DB 생성

두 서버 중 원하는 곳에 DB를 생성하면 됩니다.

우선 서버 하위에 있는 데이터베이스 폴더를 마우스 오른쪽 클릭합니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

새 데이터베이스 추가를 누릅니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

원하는 이름으로 데이터베이스 이름을 적습니다. 

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

확인을 누르면 정상적으로 DB가 생성됩니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

3) 테이블 구성 및 생성

DB를 생성했으니 그 안에 테이블을 추가해볼 차례 입니다.

 

DB하위에 있는 테이블 폴더를 마우스 오른쪽 클릭하고, 새 테이블 추가를 누릅니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

아래와 같이 테이블을 구성할수 있는 창이 뜹니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

이곳에서 원하는 컬럼명과 타입을 지정해줍니다. 그리고 null 허용 여부도 결정해줍니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

참고로 해당 내역을 작성하면 아래 있는 디자인 부분에 그에 상응하는 쿼리문이 자동으로 생성되는 것을 알 수 있습니다. 

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

작성이 완료되면 업데이트를 눌러줍니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

팝업창이 뜨면 데이터베이스 업데이트 버튼을 눌러줍니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

완료 후 TestDB아래에 dbo.Table이라는 테이블이 생성된 걸 볼 수 있을겁니다. 

여기서 dbo는 디폴트로 붙는 prefix이고 .Table은 디폴트로 생성되는 테이블 명입니다.

 

테이블명을 Users로 변경하겠습니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 1. locadb에 테이블 생성

 

2.  EntityFramework 연결

1) Nuget Pacakage 다운로드

종속성 위에서 마우스 오른쪽을 클릭하고 NuGet 패키지 관리를 클릭합니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

검색창에 entityframework를 검색한 후, EntityFrameworkCoreSqlServer를 다운로드 합니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

2) DbContext를 상속받은 클래스 생성

 

EntityFramework를 이용한 데이터 관리를 위한 클래스를 생성합니다.

이때 클래스는 DbContext라는 것을 상속받는 형태입니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

현재 빨간줄이 뜨는건 관련 네임스페이스가 없기 때문인데요.

 

ctrl+. 을 눌러서 namespace를 추가 해주면 빨간줄이 사라집니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

이어서 테이블에서 지정한 컬럼명과, 타입이 일치하는 프러퍼티를 가지는 클래스를 생성합니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

컬럼명이 다르거나 타입이 일치 하지 않으면 오류가 발생하니 주의 하기 바랍니다.

 

참고로 c#에는 varchar가 없으니 string으로 대체 합니다.

 

다시 TestDbContext로 돌아와서 앞서 만든 User클래스DbSet안에 넣은 형태의 프러퍼티를 정의합니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

 

Dbset의 이름은 DB명과 일치하기를 권장합니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

다음으로 할 부분은 DB와 연결하는 작업입니다.

 

3) DB와 연결

 

아래와 같이 config.. 까지 적어주면 자동으로 생성되는 메소드가 보이실텐데요.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

해당 부분을 클릭해서 생성해줍니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

DB와 연결 시켜주기 위해 메소드를 조금 수정해보겠습니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

UseSqlServer() 메서드가 우리가 사용할 함수 입니다. 해당함수의 인자로는 connectionString 값이 들어갑니다.

 

우리 DB의 connectionString 은 무엇일까요?

 

연결한 데이터베이스 마우스 오른쪽 클릭 후 속성을 누르면,

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

오른쪽 하단에 속성창이 뜹니다. 

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

해당 부분을 복사해서,

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

인자로 넣어주면 됩니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

이때 \(백슬래시)가 들어간 부분때문에 에러가 뜰 수 있으니 앞에 @를 추가해줍니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

이제 Db를 연결할준비가 끝났습니다.

 

실제로 DB에 있는 데이터를 읽어보겠습니다.

 

4) DB에 랜덤값 넣기

현재 DB에 데이터가 없기 때문에 임의의 값들을 먼저 채워볼게요.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

5) DB값 출력

//Program.cs

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

TestDbContext를 객체화하고 Dbset의 이름인 Users를 가져와 사용합니다.

 

그 후 추가적으로 List로 타입 변환을 해주었는데요.

ToList()로 변환을 하지 않아도 가능은 하나, 더욱 확장성 있는 쿼리를 작성하기 위해선 일반적으로 ToList()로 변환한다는것을 참고하기 바랍니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

output:

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

 

아래와 같이 using을 쓰지 않아도  정상작동하지만  메모리 효율성을 위해 위와 같이 using을 감싼 형태로 작성하였습니다.

 

[c#] localdb에 EntityFramework 연결 하는 방법 - undefined - 2.  EntityFramework 연결

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글

꼬예님의
글이 좋았다면 응원을 보내주세요!