[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

이번글에서는 .NET Framework 에서 MSSQL 접속하여 데이터를 가져오고 화면에 표시하는 법을 알아보도록 하겠습니다.
C# 에서는 간단히 콘솔 프로그램으로 만들어 콘솔창에 DB 내용을 보여주는 예제를 보여드리도록 하겠습니다.

아쉽게도 이후 버전인 .Net Core, .Net 프로그래밍에서는 이런 UI 프로그래밍의 제공이 사리지고 명령으로 모델을 추가 할 수 있도록 변경 되었습니다.

.Net Core 또는 .Net 프로그램에서 MSSQL 접속을 위해서는 다음글을 참조 하시면 됩니다.

DB 구조

먼저 MSSQL DB 구조를 보겠습니다. 이번글에서는 DB First 즉 DB 먼저 생성하고 .Net 프로그래밍으로 MSSQL 에 접속해서 데이터를 읽고 쓰는 방법에 대해 알아볼것입니다.
MSSQL 에서 DB 구조가 어떻게 되어 있는지 먼저 보겠습니다. 저는 인터넷에서 많이 사용하는 MSSQL 예제 NorthWind 를 MSSQL 에 생성하였습니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

위와 같이 Northwind 데이터베이스에서 Orders 라는 테이블의 데이터를 읽어보도록 하겠습니다.

프로젝트 생성

이제 실전으로 들어갑니다.
비쥬얼 스튜디오를 실행하고 테스트로 C# 콘솔앱을 하나 만들겠습니다. 저는 .Net Framework 4.6.1 로 만들겠습니다.
프로젝트 명을 TestMssql로 정해주었습니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

서버탐색기 연결

프로젝트가 만들어졌으면 DB 의 테이블을 매칭할 모델을 만들어 주도록 하겠습니다.

그 전에 비쥬얼 스튜디오 서버탐색기에서 MSSQL DB 를 연결해야 합니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

위에서처럼 서버탐색기에서 데이터 연결을 누르시고 연결 추가를 누릅니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

MSSQL 에 접속해야 하므로 Microsoft SQL Server 를 선택해 줍니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

해당 환경에 맞게 접속 정보를 누른신후 연결 테스트 한번 해보시고 확인을 누릅니다.

모델추가

이제 DB 모델을 추가 하겠습니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

비쥬얼 스튜디오 프로젝트 탭에서 새항목을 하나 ADD 합니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

데이터 탭에서 ADO.NET 엔티티 데이트 모델을 선택해 줍니다.

그런후 데이터 베이스의 EF Designer 를 선택해 줍니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

서버 접속 설정을 마무리 짖습니다. 위 처럼 서버접속 정보와 모델 정보를 입력하고 다음을 클릭합니다.
그리고 EntityFramework 6.X 를 설치 하라는 화면이 나오는데 다음을 선택하고 다음을 누릅니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

위의 DB 에서 Orders 테이블만 사용하도록 하겠습니다. 그리고 마침 버튼을 누르면 모델이 자동 생성됩니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

위 사진처럼 프로젝트에 Northwind.edmx 아이템이 자동 추가 되었고 그 하위로 Orders 테이블의 모델이 자동 생성된 것을 보실 수 있습니다.

데이터 가져오기

Program.cs 에서 다음처럼 코딩후 실행 시켜 보겠습니다.

모든 데이터를 콘솔창에 표시해보겠습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestMssql
{
    internal class Program
    {
        static void Main(string[] args)
        {
            using (var context = new NorthwindEntities())
            {
                foreach (var row in context.Orders)
                {
                    Console.WriteLine(
                        $"OrderId : {row.OrderID} - CustomerId : {row.CustomerID}");
                }
                Console.WriteLine(
                    $"총 {context.Orders.Count()} 개 가 출력되었습니다.");
            }
        }
    }
}

실행 시키면 다음과 같이 실행 됩니다.

[C#] .NET Framework 에서 MSSQL 접속하기 : entityframework 사용

결론

.Net Framework 에서 EntityFramework으로 MSSQL DB를 아주 쉽게 컨트롤 하는 방법을 배웠습니다.

DB 연결은 이렇게 쉽게 구성하였으니 EntityFrameWork 을 사용하여 Web 서버 또는 WPF 같은 UI 프로그램에서도 쉽게 접근하고 개발할 수 있습니다.

Leave a Comment