RelationalQueryableExtensions.FromSqlRaw<TEntity> 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
원시 SQL 쿼리를 기반으로 LINQ 쿼리를 만듭니다.
public static System.Linq.IQueryable<TEntity> FromSqlRaw<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, string sql, params object[] parameters) where TEntity : class;
public static System.Linq.IQueryable<TEntity> FromSqlRaw<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, string sql, params object?[] parameters) where TEntity : class;
static member FromSqlRaw : Microsoft.EntityFrameworkCore.DbSet<'Entity (requires 'Entity : null)> * string * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSqlRaw(Of TEntity As Class) (source As DbSet(Of TEntity), sql As String, ParamArray parameters As Object()) As IQueryable(Of TEntity)
형식 매개 변수
- TEntity
source
요소의 형식입니다.
매개 변수
- source
- DbSet<TEntity>
IQueryable<T> 원시 SQL 쿼리의 기반으로 사용할 입니다(일반적으로 )DbSet<TEntity>.
- sql
- String
원시 SQL 쿼리입니다.
- parameters
- Object[]
매개 변수에 할당할 값입니다.
반환
IQueryable<T> 원시 SQL 쿼리를 나타내는 입니다.
설명
데이터베이스 공급자가 제공된 SQL에서 작성을 지원하는 경우 LINQ 연산 context.Blogs.FromSqlRaw("SELECT * FROM Blogs").OrderBy(b => b.Name)
자를 사용하여 원시 SQL 쿼리를 기반으로 작성할 수 있습니다.
SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 제공하는 매개 변수 값은 모두 DbParameter로 자동 변환됩니다.
그러나 유효성이 검사 되지 않은 사용자 제공 값이 있는 연결되거나 보간된 문자열($""
)을 이 메서드에 전달하지 않습니다. 이렇게 하면 애플리케이션이 SQL 삽입 공격에 노출 될 수 있습니다. 보간된 문자열 구문을 사용하려면 를 사용하여 FromSql<TEntity>(DbSet<TEntity>, FormattableString) 매개 변수를 만드는 것이 좋습니다.
또한 이 오버로드는 인스턴스를 DbParameter 매개 변수 값으로 허용합니다. 위(){0}
와 같이 위치 자리 표시자를 사용하는 것 외에도 SQL 쿼리 문자열에서 명명된 자리 표시자를 직접 사용할 수도 있습니다.
자세한 내용 과 예제는 EF Core를 사용하여 원시 SQL 명령 실행을 참조하세요.
적용 대상
Entity Framework