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


DbSet<TEntity>.SqlQuery - метод

[Эта страница относится к документации к Entity Framework 6. Последняя версия доступна в составе пакета Entity Framework NuGet. Дополнительные сведения об Entity Framework см. в разделе msdn.com/data/ef.]

Создает необработанный SQL-запрос, возвращающий сущности в данном наборе. По умолчанию возвращаемые сущности отслеживаются контекстом. Это поведение можно изменить, вызвав метод AsNoTracking для возвращаемого объекта DbSqlQuery<TEntity>. Обратите внимание, что сущности всегда имеют тип, заданный для набора, и никогда не имеют производный тип. Если запрашиваемая таблица или таблицы могут содержать данные других типов сущностей, SQL-запрос должен быть написан соответствующим образом, обеспечивая возврат только сущностей нужного типа. Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL. Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы. Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery. Это позволяет использовать в строке запроса SQL именованные параметры. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Пространство имен:  System.Data.Entity
Сборка:  EntityFramework (в EntityFramework.dll)

Синтаксис

'Декларация
Public Overridable Function SqlQuery ( _
    sql As String, _
    ParamArray parameters As Object() _
) As DbSqlQuery(Of TEntity)
'Применение
Dim instance As DbSet 
Dim sql As String 
Dim parameters As Object()
Dim returnValue As DbSqlQuery(Of TEntity)

returnValue = instance.SqlQuery(sql, parameters)
public virtual DbSqlQuery<TEntity> SqlQuery(
    string sql,
    params Object[] parameters
)
public:
virtual DbSqlQuery<TEntity>^ SqlQuery(
    String^ sql, 
    ... array<Object^>^ parameters
)
abstract SqlQuery : 
        sql:string * 
        parameters:Object[] -> DbSqlQuery<'TEntity> 
override SqlQuery : 
        sql:string * 
        parameters:Object[] -> DbSqlQuery<'TEntity> 
public function SqlQuery(
    sql : String, 
    ... parameters : Object[]
) : DbSqlQuery<TEntity>

Параметры

  • parameters
    Тип: System.Object[]
    Параметры, подставляемые в строку SQL-запроса. Если используются выходные параметры, их значения не будут доступны до полного прочтения результатов. Это происходит вследствие базового поведения DbDataReader, дополнительные сведения см. на сайте https://go.microsoft.com/fwlink/?LinkID=398589.

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

Тип: System.Data.Entity.Infrastructure.DbSqlQuery<TEntity>
Объект DbSqlQuery<TEntity>, выполняющий запрос при перечислении.

См. также

Справочник

DbSet<TEntity> Класс

System.Data.Entity - пространство имен