RelationalDatabaseFacadeExtensions.SqlQuery<TResult> Metoda

Definicja

Tworzy zapytanie LINQ oparte na nieprzetworzonym zapytaniu SQL, które zwraca zestaw wyników typu skalarnego natywnie obsługiwanego przez dostawcę bazy danych.

public static System.Linq.IQueryable<TResult> SqlQuery<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);
static member SqlQuery : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * FormattableString -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQuery(Of TResult) (databaseFacade As DatabaseFacade, sql As FormattableString) As IQueryable(Of TResult)

Parametry typu

TResult

Parametry

databaseFacade
DatabaseFacade

Element DatabaseFacade dla kontekstu.

sql
FormattableString

Ciąg interpolowany reprezentujący zapytanie SQL z parametrami.

Zwraca

IQueryable<TResult>

Reprezentująca IQueryable<T> zapytanie SQL ciągu interpolowanego.

Uwagi

Aby użyć tej metody z typem zwracanym, który nie jest natywnie obsługiwany przez dostawcę DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) bazy danych, użyj metody .

Zwrócony IQueryable<T> element można skomponować za pomocą 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ą, najpierw wywołaj lub BeginTransaction(DatabaseFacade, IsolationLevel)UseTransaction.

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.

Aby uzyskać więcej informacji i przykładów, zobacz Wykonywanie nieprzetworzonych poleceń SQL za pomocą programu EF Core .

Dotyczy