.NET/ASP.NET

[ASP.NET Core] SQL 사용하기

클리엘 2021. 11. 5. 03:15
728x90

아래 method를 사용하기 위해서는 Microsoft.EntityFrameworkCore와 Microsoft.EntityFrameworkCore.Relational package가 설치되어 있어하며 using Microsoft.EntityFrameworkCore; 으로 namespace사용을 선언합니다.

 

1. FromSqlRaw / FromSqlInterpolated

TestContext tc = new TestContext();

tc.TblUser.FromSqlRaw<TblUser>($"Select seq, userID, userPW From TBL_User;").ToList();

//또는
string user = "abc";
tc.TblUser.FromSqlRaw<TblUser>($"Select seq, userID, userPW From TBL_User Where userID = '{user}';").ToList();

//또는
var user = new SqlParameter("user", "abc");
return tc.TblUser.FromSqlRaw<TblUser>($"Select seq, userID, userPW From TBL_User Where userID = @user;", user).ToList();

이때 Query는 형식매개변수에 맞는 구조로 작성되어야 합니다.

 

FromSqlInterpolated는 보간문자열등으로 값을 제공하는 경우 SQL Injection공격으로 부터 방어할 수 있도록 하는 method입니다.

 

2. ExecuteSqlRaw / ExecuteSqlInterpolated

 

ExecuteSqlRaw() method는 Select 보다는 Update나 Insert등의 변경 Query에 사용합니다.

TestContext tc = new TestContext();

var user = new SqlParameter("user", "def");
tc.Database.ExecuteSqlRaw("Update [dbo].[TBL_User] Set UserID = @user;", user);

ExecuteSqlInterpolated는 보간문자열등으로 값을 제공하는 경우 SQL Injection공격으로 부터 방어할 수 있도록 하는 method입니다.

728x90