이 포스팅은 맥 환경을 기준으로 작성 되었습니다.
맥에서 MS SQL Server를 이용하기 위해선, 도커에 이미지를 불러와 컨테이너를 실행시켜야 한다.
따라서, Docker를 설치해 준 뒤 도커에 MS SQL Server를 설치한다.
docker run -e "ACCEPT_EULA=1" -e "MSSQL_USER=SA" -e "MSSQL_SA_PASSWORD=SQLConnect1" -e "MSSQL_PID=Developer" -p 1433:1433 -d --name=sql_connect mcr.microsoft.com/azure-sql-edge
해당 커맨드를 입력하여 MS SQL Server를 구성하자.
환경 변수
ACCEPT_EULA
: 최종 사용자 라이선스 계약 동의MSSQL_USER
: 유저 아이디, SA는 System AdministratorMSSQL_SA_PASSWORD
: 시스템 관리자 패스워드MSSQL_PID
: SQL Server 버전 설정
MS SQL Server 컨테이너가 정상적으로 실행된 모습.
Azure Database 를 실행하여 위와 같이 새로운 커넥션을 생성한다.
윈도우의 경우 SQL 로그인 필요 없이 현재 실행중인 윈도우 계정으로 생성할 수 있다.
정상적으로 커넥션이 됐다면 위와 같은 화면이 보인다.
CREATE DATABASE DotNetCourseDatabase
GO
USE DotNetCourseDatabase
GO
CREATE SCHEMA TutorialAppSchema
GO
CREATE TABLE TutorialAppSchema.Computer(
ComputerId INT IDENTITY(1,1) PRIMARY KEY,
Motherboard NVARCHAR(50),
CPUCores INT,
HasWifi BIT,
HasLTE BIT,
ReleaseDate DATE,
Price DECIMAL(18,4),
VideoCard NVARCHAR(50)
);
그리고 위와 같이 SQL 쿼리문을 실행하여, 실습에 필요한 데이터베이스와 스키마를 생성해준다.
Rider 의 환경에서는 위와 같이 패키지를 직접 추가할 수도 있다.
커맨드로 설치할 경우 dotnet add package Dapper
를 실행한다.
그리고 SQL 서버와 연동을 가능하게 해줄 SQLClient
패키지와 Entitiy
패키지들도 추가로 설치해준다.
dotnet add package microsoft.data.sqlclient
, dotnet add package microsoft.entity.frameworkcore
, dotnet add package microsoft.entity.framworkcore.sqlserver
를 실행해주면 된다.
string connectionString = "Server=localhost;" +
"Database=DotNetCourseDatabase;" +
"TrustServerCertificate=true;" +
"Trusted_Connection=false;" +
"User Id=sa;" +
"Password=SQLConnect1;";
IDbConnection dbConnection = new SqlConnection(connectionString);
connectionString
으로 SQL Server와 연동할 String을 작성해준다.
.NET 에서 기본으로 제공하는 IDbConnection
인터페이스를 통해 RDBMS에 액세스 할 수 있다.
string sqlSelect = @"SELECT * FROM TutorialAppSchema.Computer";
IEnumerable<Computer> computers = dbConnection.Query<Computer>(sqlSelect);
foreach (Computer singleComputer in computers)
{
Console.WriteLine(singleComputer.ToString());
}
SQL 쿼리문이 정상적으로 동작함을 알 수 있다.
Query, QuerySingle의 차이
- Query
- 열거형 데이터를 반환함. (목록)
- QuerySingle
- 해당하는 데이터 컬럼 하나를 반환함.
닷넷의 기본적인 데이터베이스 프로그래밍을 배운 것이다.
기초를 알아야 ORM을 사용할 줄 아는 법이다.