Udostępnij za pośrednictwem


DbSet<TEntity>.SqlQuery(String, Object[]) Metoda

Definicja

Tworzy nieprzetworzone zapytanie SQL, które zwróci jednostki w tym zestawie. Domyślnie zwracane jednostki są śledzone przez kontekst; Można to zmienić, wywołując funkcję AsNoTracking po zwróconym DbSqlQuery<TEntity> . Należy pamiętać, że zwracane jednostki są zawsze typu dla tego zestawu i nigdy nie mają typu pochodnego. Jeśli tabela lub tabele, których dotyczy zapytanie, mogą zawierać dane dla innych typów jednostek, zapytanie SQL musi być napisane odpowiednio, aby upewnić się, że zwracane są tylko jednostki poprawnego typu.

Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszystkie dane wejściowe użytkownika w celu ochrony przed atakiem polegającym na wstrzyknięciu kodu SQL. W ciągu zapytania SQL można uwzględnić posiadacze miejsc parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie wartości parametrów, które podajesz, zostaną automatycznie przekonwertowane na parametr DbParameter. Kontekście. Blogs.SqlQuery("SELECT * FROM dbo. Posty WHERE Author = @p0", userSuppliedAuthor); Alternatywnie można również skonstruować parametr DbParameter i podać go do zapytania SqlQuery. Umożliwia to używanie nazwanych parametrów w ciągu zapytania SQL. Kontekście. Blogs.SqlQuery("SELECT * FROM dbo. Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

Parametry

sql
String

Ciąg zapytania SQL.

parameters
Object[]

Parametry, które mają być stosowane do ciągu zapytania SQL. Jeśli są używane parametry wyjściowe, ich wartości nie będą dostępne, dopóki wyniki nie zostaną całkowicie odczytane. Jest to spowodowane podstawowym zachowaniem elementu DbDataReader, zobacz http://go.microsoft.com/fwlink/?LinkID=398589 więcej szczegółów.

Zwraca

DbSqlQuery<TEntity> Obiekt, który wykona zapytanie podczas wyliczania.

Dotyczy