다음을 통해 공유


DbSet.SqlQuery(String, Object[]) 메서드

정의

이 집합에 엔터티를 반환할 원시 SQL 쿼리를 만듭니다. 기본적으로 반환되는 엔터티는 컨텍스트에 의해 추적됩니다. 반환된 에서 AsNoTracking을 호출하여 DbRawSqlQuery 변경할 수 있습니다. 반환되는 엔터티는 항상 이 집합에 대한 형식이며 파생 형식이 없습니다. 쿼리된 테이블에 다른 엔터티 형식의 데이터가 포함될 수 있는 경우 SQL 쿼리는 올바른 형식의 엔터티만 반환되도록 적절하게 작성되어야 합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 사용자가 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. 게시물 WHERE Author = @p0", userSuppliedAuthor); 또는 DbParameter를 생성하고 SqlQuery에 제공할 수도 있습니다. 그러면 SQL 쿼리 문자열에 명명된 매개 변수를 사용할 수 있습니다. 컨텍스트. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. 게시물 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

public virtual System.Data.Entity.Infrastructure.DbSqlQuery SqlQuery (string sql, params object[] parameters);
abstract member SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
override this.SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
Public Overridable Function SqlQuery (sql As String, ParamArray parameters As Object()) As DbSqlQuery

매개 변수

sql
String

SQL 쿼리 문자열입니다.

parameters
Object[]

SQL 쿼리 문자열에 적용할 매개 변수입니다. 출력 매개 변수를 사용하는 경우 결과를 완전히 읽을 때까지 해당 값을 사용할 수 없습니다. 이는 DbDataReader의 기본 동작 때문입니다. 자세한 내용은 를 참조하세요 http://go.microsoft.com/fwlink/?LinkID=398589 .

반환

DbSqlQuery 열거될 때 쿼리를 실행할 개체입니다.

적용 대상