DbSet<TEntity>.SqlQuery(String, Object[]) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.