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
'.NET > ASP.NET' 카테고리의 다른 글
[ASP.NET Core] Claim 인증과 권한 (0) | 2021.11.11 |
---|---|
[ASP.NET Core] 암호화 사용하기(DataProtection) (0) | 2021.11.07 |
[ASP.NET Core] Entity Framework Core (Code-First) (0) | 2021.11.02 |
[ASP.NET Core] 의존성 주입(Dependency Injection) (0) | 2021.11.01 |
[ASP.NET Core] MVC Pattern (0) | 2021.10.31 |