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


RelationalQueryableExtensions.FromSql Метод

Определение

Перегрузки

FromSql<TEntity>(DbSet<TEntity>, FormattableString)

Создает запрос LINQ на основе интерполированной строки, представляющей SQL-запрос.

FromSql<TEntity>(IQueryable<TEntity>, FormattableString)
Устаревшие..

Создает запрос LINQ на основе интерполированной строки, представляющей SQL-запрос.

Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать поверх необработанного SQL-запроса с помощью операторов LINQ — context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name).

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. В строку ЗАПРОСА SQL можно включить интерполированные заполнители параметров. Все значения интерполированных параметров, которые вы предоставляете, будут автоматически преобразованы в DbParameter — context.Blogs.FromSql($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

FromSql<TEntity>(IQueryable<TEntity>, RawSqlString, Object[])
Устаревшие..

Создает запрос LINQ на основе необработанного SQL-запроса.

Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать поверх необработанного SQL-запроса с помощью операторов LINQ — context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name).

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter — context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm).

Эта перегрузка также принимает экземпляры DbParameter в качестве значений параметров. Это позволяет использовать именованные параметры в строке ЗАПРОСА SQL : context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

FromSql<TEntity>(IQueryable<TEntity>, String, Object[])

Создает запрос LINQ на основе необработанного SQL-запроса.

Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать поверх необработанного SQL-запроса с помощью операторов LINQ — context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name).

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter — context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm).

Вы также можете создать DbParameter и указать его в качестве значения параметра. Это позволяет использовать именованные параметры в строке ЗАПРОСА SQL : context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

FromSql<TEntity>(DbSet<TEntity>, FormattableString)

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

Создает запрос LINQ на основе интерполированной строки, представляющей SQL-запрос.

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, FormattableString sql) where TEntity : class;
static member FromSql : Microsoft.EntityFrameworkCore.DbSet<'Entity (requires 'Entity : null)> * FormattableString -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As DbSet(Of TEntity), sql As FormattableString) As IQueryable(Of TEntity)

Параметры типа

TEntity

Тип элементов source.

Параметры

source
DbSet<TEntity>

Объект IQueryable<T> , используемый в качестве основы для интерполированного строкового ЗАПРОСА SQL (обычно ).DbSet<TEntity>

sql
FormattableString

Интерполированная строка, представляющая SQL-запрос с параметрами.

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

IQueryable<TEntity>

Объект , IQueryable<T> представляющий запрос SQL с интерполированной строкой.

Комментарии

Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать поверх необработанного SQL-запроса с помощью операторов LINQ.

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

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

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

FromSql<TEntity>(IQueryable<TEntity>, FormattableString)

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

Внимание!

For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.

Создает запрос LINQ на основе интерполированной строки, представляющей SQL-запрос.

Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать поверх необработанного SQL-запроса с помощью операторов LINQ — context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name).

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. В строку ЗАПРОСА SQL можно включить интерполированные заполнители параметров. Все значения интерполированных параметров, которые вы предоставляете, будут автоматически преобразованы в DbParameter — context.Blogs.FromSql($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, FormattableString sql) where TEntity : class;
[System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)]
public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, FormattableString sql) where TEntity : class;
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * FormattableString -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
[<System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)>]
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * FormattableString -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As IQueryable(Of TEntity), sql As FormattableString) As IQueryable(Of TEntity)

Параметры типа

TEntity

Тип элементов source.

Параметры

source
IQueryable<TEntity>

Объект IQueryable<T> , используемый в качестве основы для интерполированного строкового ЗАПРОСА SQL (обычно ).DbSet<TEntity>

sql
FormattableString

Интерполированная строка, представляющая SQL-запрос.

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

IQueryable<TEntity>

Объект , IQueryable<T> представляющий запрос SQL с интерполированной строкой.

Атрибуты

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

FromSql<TEntity>(IQueryable<TEntity>, RawSqlString, Object[])

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

Внимание!

For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.

Создает запрос LINQ на основе необработанного SQL-запроса.

Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать поверх необработанного SQL-запроса с помощью операторов LINQ — context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name).

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter — context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm).

Эта перегрузка также принимает экземпляры DbParameter в качестве значений параметров. Это позволяет использовать именованные параметры в строке ЗАПРОСА SQL : context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, Microsoft.EntityFrameworkCore.RawSqlString sql, params object[] parameters) where TEntity : class;
[System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)]
public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, Microsoft.EntityFrameworkCore.RawSqlString sql, params object[] parameters) where TEntity : class;
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * Microsoft.EntityFrameworkCore.RawSqlString * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
[<System.Obsolete("For returning objects from SQL queries using plain strings, use FromSqlRaw instead. For returning objects from SQL queries using interpolated string syntax to create parameters, use FromSqlInterpolated instead. Call either new method directly on the DbSet at the root of the query.", true)>]
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * Microsoft.EntityFrameworkCore.RawSqlString * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As IQueryable(Of TEntity), sql As RawSqlString, ParamArray parameters As Object()) As IQueryable(Of TEntity)

Параметры типа

TEntity

Тип элементов source.

Параметры

source
IQueryable<TEntity>

Объект IQueryable<T> , используемый в качестве основы необработанного SQL-запроса (обычно ).DbSet<TEntity>

sql
RawSqlString

Необработанный SQL-запрос. NB. Здесь можно передать строковый литерал, так как RawSqlString он неявно преобразуется в строку.

parameters
Object[]

Значения, присваиваемые параметрам.

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

IQueryable<TEntity>

Объект , IQueryable<T> представляющий необработанный SQL-запрос.

Атрибуты

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

FromSql<TEntity>(IQueryable<TEntity>, String, Object[])

Создает запрос LINQ на основе необработанного SQL-запроса.

Если поставщик базы данных поддерживает создание в предоставленном SQL, можно создать поверх необработанного SQL-запроса с помощью операторов LINQ — context.Blogs.FromSql("SELECT * FROM dbo.Blogs").OrderBy(b => b.Name).

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все указанные значения параметров будут автоматически преобразованы в DbParameter — context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm).

Вы также можете создать DbParameter и указать его в качестве значения параметра. Это позволяет использовать именованные параметры в строке ЗАПРОСА SQL : context.Blogs.FromSql("SELECT * FROM [dbo].[SearchBlogs]({@searchTerm})", new SqlParameter("@searchTerm", userSuppliedSearchTerm))

public static System.Linq.IQueryable<TEntity> FromSql<TEntity> (this System.Linq.IQueryable<TEntity> source, string sql, params object[] parameters) where TEntity : class;
static member FromSql : System.Linq.IQueryable<'Entity (requires 'Entity : null)> * string * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSql(Of TEntity As Class) (source As IQueryable(Of TEntity), sql As String, ParamArray parameters As Object()) As IQueryable(Of TEntity)

Параметры типа

TEntity

Тип элементов source.

Параметры

source
IQueryable<TEntity>

Объект IQueryable<T> , используемый в качестве основы необработанного SQL-запроса (обычно ).DbSet<TEntity>

sql
String

Необработанный SQL-запрос.

parameters
Object[]

Значения, присваиваемые параметрам.

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

IQueryable<TEntity>

Объект , IQueryable<T> представляющий необработанный SQL-запрос.

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