RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> 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 zapytanie LINQ na podstawie nieprzetworzonego zapytania SQL, które zwraca zestaw wyników typu skalarnego natywnie obsługiwanego przez dostawcę bazy danych.
public static System.Linq.IQueryable<TResult> SqlQueryRaw<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member SqlQueryRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQueryRaw(Of TResult) (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As IQueryable(Of TResult)
Parametry typu
- TResult
Parametry
- databaseFacade
- DatabaseFacade
Element DatabaseFacade dla kontekstu.
- sql
- String
Nieprzetworzone zapytanie SQL.
- parameters
- Object[]
Wartości do przypisania do parametrów.
Zwraca
Reprezentujący IQueryable<T> nieprzetworzone zapytanie SQL.
Uwagi
Aby użyć tej metody z typem zwrotnym, który nie jest natywnie obsługiwany przez dostawcę bazy danych, użyj DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) metody .
Zwrócone dane mogą być komponowane IQueryable<T> przy użyciu LINQ w celu tworzenia bardziej złożonych zapytań.
Należy pamiętać, że ta metoda nie uruchamia transakcji. Aby użyć tej metody z transakcją, pierwsze wywołanie BeginTransaction(DatabaseFacade, IsolationLevel) lub UseTransaction.
Podobnie jak w przypadku każdego interfejsu API, który akceptuje język SQL, ważne jest, aby sparametryzować wszelkie 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ć symbole zastępcze parametrów, a następnie podać wartości parametrów jako dodatkowe argumenty. Wszystkie podane wartości parametrów zostaną automatycznie przekonwertowane na parametr DbParameter.
Jednak nigdy nie należy przekazywać połączonych ani interpolowanych ciągów ($""
) z nieweryfikowanymi wartościami dostarczonymi przez użytkownika do tej metody. Może to spowodować ujawnienie aplikacji ataków polegających na wstrzyknięciu kodu SQL. Aby użyć składni ciągu interpolowanego, rozważ użycie metody SqlQuery<TResult>(DatabaseFacade, FormattableString) do utworzenia parametrów.
Aby uzyskać więcej informacji i przykłady, zobacz Wykonywanie nieprzetworzonych poleceń SQL za pomocą programu EF Core .