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


RelationalQueryableExtensions Класс

Определение

Методы расширения для реляционной базы данных для запросов LINQ.

public static class RelationalQueryableExtensions
type RelationalQueryableExtensions = class
Public Module RelationalQueryableExtensions
Наследование
RelationalQueryableExtensions

Методы

AsSingleQuery<TEntity>(IQueryable<TEntity>)

Возвращает новый запрос, настроенный для загрузки коллекций в результатах запроса в одном запросе базы данных.

AsSplitQuery<TEntity>(IQueryable<TEntity>)

Возвращает новый запрос, настроенный для загрузки коллекций в результатах запроса с помощью отдельных запросов к базе данных.

CreateDbCommand(IQueryable)

Создает настройку DbCommand для выполнения этого запроса.

ExecuteDelete<TSource>(IQueryable<TSource>)

Удаляет все строки базы данных для экземпляров сущностей, которые соответствуют запросу LINQ из базы данных.

ExecuteDeleteAsync<TSource>(IQueryable<TSource>, CancellationToken)

Асинхронно удаляет строки базы данных для экземпляров сущностей, которые соответствуют запросу LINQ из базы данных.

ExecuteUpdate<TSource>(IQueryable<TSource>, Expression<Func<SetPropertyCalls<TSource>,SetPropertyCalls<TSource>>>)

Обновления все строки базы данных для экземпляров сущностей, которые соответствуют запросу LINQ из базы данных.

ExecuteUpdateAsync<TSource>(IQueryable<TSource>, Expression<Func<SetPropertyCalls<TSource>,SetPropertyCalls<TSource>>>, CancellationToken)

Асинхронно обновляет строки базы данных для экземпляров сущностей, которые соответствуют запросу LINQ из базы данных.

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))

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

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

FromSqlRaw<TEntity>(DbSet<TEntity>, String, Object[])

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

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