RelationalQueryableExtensions.FromSqlRaw<TEntity> Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает запрос LINQ на основе необработанного SQL-запроса.
Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать на основе необработанного SQL-запроса с помощью операторов LINQ: context.Blogs.FromSqlRaw("SELECT * FROM Blogs").OrderBy(b => b.Name)
Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атаки путем внедрения кода SQL. Можно включить заполнители параметров в строку запроса SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в :DbParameter
context.Blogs.FromSqlRaw("SELECT * FROM Blogs WHERE Name = {0}", userSuppliedSearchTerm)
Однако никогда не передайте в этот метод объединенные или интерполированные строки ($"") с непроверенными значениями, предоставленными пользователем. Это может привести к атакам путем внедрения кода SQL. Чтобы использовать интерполированный синтаксис строки, рассмотрите возможность FromSqlInterpolated<TEntity>(DbSet<TEntity>, FormattableString) создания параметров.
Эта перегрузка DbParameter также принимает экземпляры в качестве значений параметров. Помимо использования позиционных заполнителей, как описано выше ({0}), можно также использовать именованные заполнители непосредственно в строке sql-запроса:
context.Blogs.FromSqlRaw("SELECT * FROM Blogs WHERE Name = @searchTerm", new SqlParameter("@searchTerm", userSuppliedSearchTerm))
public static System.Linq.IQueryable<TEntity> FromSqlRaw<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, string sql, params object[] parameters) where TEntity : class;
static member FromSqlRaw : Microsoft.EntityFrameworkCore.DbSet<'Entity (requires 'Entity : null)> * string * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSqlRaw(Of TEntity As Class) (source As DbSet(Of TEntity), sql As String, ParamArray parameters As Object()) As IQueryable(Of TEntity)
Параметры типа
- TEntity
Тип элементов source.
Параметры
- source
- DbSet<TEntity>
Объект IQueryable<T> , используемый в качестве основы необработанного SQL-запроса (как правило, а DbSet<TEntity>).
- sql
- String
Необработанный SQL-запрос.
- parameters
- Object[]
Значения, присваиваемые параметрам.
Возвращаемое значение
- IQueryable<TEntity>
Представляет IQueryable<T> необработанный SQL-запрос.
Комментарии
Дополнительные сведения см. в разделе "Выполнение необработанных команд SQL с помощью EF Core ".
Применяется к
Обратная связь
Отправить и просмотреть отзыв по