Udostępnij za pośrednictwem


RelationalDatabaseFacadeExtensions.ExecuteSql Metoda

Definicja

Wykonuje daną bazę danych SQL i zwraca liczbę wierszy, których dotyczy problem.

public static int ExecuteSql (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);
static member ExecuteSql : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * FormattableString -> int
<Extension()>
Public Function ExecuteSql (databaseFacade As DatabaseFacade, sql As FormattableString) As Integer

Parametry

databaseFacade
DatabaseFacade

Element DatabaseFacade dla kontekstu.

sql
FormattableString

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

Zwraca

Liczba wierszy, których dotyczy problem.

Uwagi

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.

Należy pamiętać, że bieżący element ExecutionStrategy nie jest używany przez tę metodę, ponieważ język SQL może nie być idempotentny i nie jest uruchamiany w transakcji. Można ExecutionStrategy go jawnie użyć, upewniając się, że jest również używana transakcja, jeśli język SQL nie jest idempotentny.

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