ObjectContext.ExecuteStoreQueryAsync<TElement> - метод (String, String, ExecutionOptions, Object[])
[Эта страница относится к документации к Entity Framework 6. Последняя версия доступна в составе пакета Entity Framework NuGet. Дополнительные сведения об Entity Framework см. в разделе msdn.com/data/ef.]
Асинхронно выполняет запрос непосредственно на источнике данных и возвращает последовательность типизированных результатов. Запрос задан с использованием собственного языка запросов сервера, такого как SQL. Если указано имя набора сущностей, результаты отслеживаются контекстом. Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL. Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы. Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter. context.ExecuteStoreQueryAsync&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать в строке запроса SQL именованные параметры. context.ExecuteStoreQueryAsync&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Пространство имен: System.Data.Entity.Core.Objects
Сборка: EntityFramework (в EntityFramework.dll)
Синтаксис
'Декларация
<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")> _
Public Function ExecuteStoreQueryAsync(Of TElement) ( _
commandText As String, _
entitySetName As String, _
executionOptions As ExecutionOptions, _
ParamArray parameters As Object() _
) As Task(Of ObjectResult(Of TElement))
'Применение
Dim instance As ObjectContext
Dim commandText As String
Dim entitySetName As String
Dim executionOptions As ExecutionOptions
Dim parameters As Object()
Dim returnValue As Task(Of ObjectResult(Of TElement))
returnValue = instance.ExecuteStoreQueryAsync(commandText, _
entitySetName, executionOptions, _
parameters)
[SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
public Task<ObjectResult<TElement>> ExecuteStoreQueryAsync<TElement>(
string commandText,
string entitySetName,
ExecutionOptions executionOptions,
params Object[] parameters
)
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1006:DoNotNestGenericTypesInMemberSignatures")]
public:
generic<typename TElement>
Task<ObjectResult<TElement>^>^ ExecuteStoreQueryAsync(
String^ commandText,
String^ entitySetName,
ExecutionOptions^ executionOptions,
... array<Object^>^ parameters
)
[<SuppressMessageAttribute("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")>]
member ExecuteStoreQueryAsync :
commandText:string *
entitySetName:string *
executionOptions:ExecutionOptions *
parameters:Object[] -> Task<ObjectResult<'TElement>>
JScript does not support generic types and methods.
Параметры типа
- TElement
Тип элемента последовательности результатов.
Параметры
- commandText
Тип: System.String
Запрос задан на собственном языке запросов сервера.
- entitySetName
Тип: System.String
Набор сущностей типа TResult. Без указания имени набора сущностей отслеживания результатов не будет.
- executionOptions
Тип: System.Data.Entity.Core.Objects.ExecutionOptions
Параметры, предназначенные для выполнения этого запроса.
- parameters
Тип: System.Object[]
Значения параметров, которые должны использоваться для этого запроса. Если используются выходные параметры, их значения не будут доступны до полного прочтения результатов. Это происходит вследствие базового поведения DbDataReader, дополнительные сведения см. на сайте https://go.microsoft.com/fwlink/?LinkID=398589.
Возвращаемое значение
Тип: System.Threading.Tasks.Task<ObjectResult<TElement>>
Задача, представляющая асинхронную операцию.Результат задачи содержит перечисление объектов типа TElement.
Примечания
Несколько активных операций в одном экземпляре контекста не поддерживается. Используйте «await» для обеспечения того, чтобы все асинхронные операции завершались перед вызовом другого метода применительно к этому контексту.