Поделиться через


RelationalDatabaseFacadeExtensions.ExecuteSqlRaw Метод

Определение

Перегрузки

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Выполняет заданный SQL для базы данных и возвращает количество затронутых строк.

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Выполняет заданный SQL для базы данных и возвращает количество затронутых строк.

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs

Выполняет заданный SQL для базы данных и возвращает количество затронутых строк.

public static int ExecuteSqlRaw (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object> parameters);
public static int ExecuteSqlRaw (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object?> parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * seq<obj> -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, parameters As IEnumerable(Of Object)) As Integer

Параметры

databaseFacade
DatabaseFacade

Для DatabaseFacade контекста.

sql
String

Выполняемый SQL.

parameters
IEnumerable<Object>

Параметры для использования с SQL.

Возвращаемое значение

Число обработанных строк.

Комментарии

Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction.

Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL не может быть идемпотентным и не выполняется в транзакции. Можно ExecutionStrategy использовать явным образом, убедившись, что также используется транзакция, если SQL не является идемпотентным.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter.

Однако никогда не передайте в этот метод сцепленную или интерполированную строку ($"") с непроверенными значениями, предоставленными пользователем. Это может привести к атакам путем внедрения кода SQL. Чтобы использовать синтаксис интерполированной строки, рассмотрите возможность использования ExecuteSql(DatabaseFacade, FormattableString) для создания параметров.

Дополнительные сведения и примеры см. в статье Выполнение необработанных команд SQL с помощью EF Core .

Применяется к

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs
Исходный код:
RelationalDatabaseFacadeExtensions.cs

Выполняет заданный SQL для базы данных и возвращает количество затронутых строк.

public static int ExecuteSqlRaw (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
public static int ExecuteSqlRaw (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object?[] parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As Integer

Параметры

databaseFacade
DatabaseFacade

Для DatabaseFacade контекста.

sql
String

Выполняемый SQL.

parameters
Object[]

Параметры для использования с SQL.

Возвращаемое значение

Число обработанных строк.

Комментарии

Обратите внимание, что этот метод не запускает транзакцию. Чтобы использовать этот метод с транзакцией, сначала вызовите BeginTransaction(DatabaseFacade, IsolationLevel) или UseTransaction.

Обратите внимание, что текущий ExecutionStrategy объект не используется этим методом, так как SQL не может быть идемпотентным и не выполняется в транзакции. Можно ExecutionStrategy использовать явным образом, убедившись, что также используется транзакция, если SQL не является идемпотентным.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter.

Однако никогда не передайте в этот метод сцепленную или интерполированную строку ($"") с непроверенными значениями, предоставленными пользователем. Это может привести к атакам путем внедрения кода SQL. Чтобы использовать синтаксис интерполированной строки, рассмотрите возможность использования ExecuteSql(DatabaseFacade, FormattableString) для создания параметров.

Дополнительные сведения и примеры см. в статье Выполнение необработанных команд SQL с помощью EF Core .

Применяется к