ObjectQuery<T> Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса ObjectQuery<T>.
Перегрузки
ObjectQuery<T>(String, ObjectContext) |
Создает новый ObjectQuery<T> экземпляр, используя указанную команду Entity SQL в качестве начального запроса. |
ObjectQuery<T>(String, ObjectContext, MergeOption) |
Создает новый ObjectQuery<T> экземпляр, используя указанную команду Entity SQL в качестве начального запроса и указанного параметра слияния. |
Комментарии
Запрос ObjectQuery<T> можно инициализировать так, чтобы он представлял единичный скалярный результат, а не коллекцию скалярных результатов. Некоторые методы расширений требуют на входе коллекцию. В данном случае, если вызывается один из этих методов, создается исключение ArgumentException. Дополнительные сведения см. в разделе Запросы объектов.
Когда приложение создает запросы Entity SQL во время выполнения, следует учитывать любые ограничения длины команд источника данных. Entity SQL не применяет ограничения на длину текста команды в запросах.
ObjectQuery<T>(String, ObjectContext)
Создает новый ObjectQuery<T> экземпляр, используя указанную команду Entity SQL в качестве начального запроса.
public:
ObjectQuery(System::String ^ commandText, System::Data::Objects::ObjectContext ^ context);
public ObjectQuery (string commandText, System.Data.Objects.ObjectContext context);
new System.Data.Objects.ObjectQuery<'T> : string * System.Data.Objects.ObjectContext -> System.Data.Objects.ObjectQuery<'T>
Public Sub New (commandText As String, context As ObjectContext)
Параметры
- commandText
- String
Запрос Entity SQL.
- context
- ObjectContext
Контекст ObjectContext, в котором выполняется запрос.
Примеры
В этом примере показано, как создать экземпляр ObjectQuery<T> класса .
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
// Call the constructor with a query for products and the ObjectContext.
ObjectQuery<Product> productQuery1 =
new ObjectQuery<Product>("Products", context);
foreach (Product result in productQuery1)
Console.WriteLine("Product Name: {0}", result.Name);
string queryString =
@"SELECT VALUE product FROM AdventureWorksEntities.Products AS product";
// Call the constructor with the specified query and the ObjectContext.
ObjectQuery<Product> productQuery2 =
new ObjectQuery<Product>(queryString, context);
foreach (Product result in productQuery2)
Console.WriteLine("Product Name: {0}", result.Name);
// Call the constructor with the specified query, the ObjectContext,
// and the NoTracking merge option.
ObjectQuery<Product> productQuery3 =
new ObjectQuery<Product>(queryString,
context, MergeOption.NoTracking);
foreach (Product result in productQuery3)
Console.WriteLine("Product Name: {0}", result.Name);
}
Комментарии
Когда приложение создает запросы Entity SQL во время выполнения, следует учитывать любые ограничения длины команд источника данных. Entity SQL не применяет ограничения на длину текста команды в запросах.
См. также раздел
Применяется к
ObjectQuery<T>(String, ObjectContext, MergeOption)
Создает новый ObjectQuery<T> экземпляр, используя указанную команду Entity SQL в качестве начального запроса и указанного параметра слияния.
public:
ObjectQuery(System::String ^ commandText, System::Data::Objects::ObjectContext ^ context, System::Data::Objects::MergeOption mergeOption);
public ObjectQuery (string commandText, System.Data.Objects.ObjectContext context, System.Data.Objects.MergeOption mergeOption);
new System.Data.Objects.ObjectQuery<'T> : string * System.Data.Objects.ObjectContext * System.Data.Objects.MergeOption -> System.Data.Objects.ObjectQuery<'T>
Public Sub New (commandText As String, context As ObjectContext, mergeOption As MergeOption)
Параметры
- commandText
- String
Запрос Entity SQL.
- context
- ObjectContext
Контекст ObjectContext, в котором выполняется запрос.
- mergeOption
- MergeOption
Указывает, каким образом сущности, получаемые этим запросом, должны сливаться с сущностями, возвращенными в результате предыдущих запросов к тому же контексту ObjectContext.
Примеры
В этом примере инициализируется ObjectQuery<T> с помощью указанного запроса , ObjectContextи MergeOption.
int productID = 900;
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
string queryString = @"SELECT VALUE product FROM
AdventureWorksEntities.Products AS product
WHERE product.ProductID > @productID";
ObjectQuery<Product> productQuery1 =
new ObjectQuery<Product>(queryString,
context, MergeOption.NoTracking);
productQuery1.Parameters.Add(new ObjectParameter("productID", productID));
ObjectQuery<DbDataRecord> productQuery2 =
productQuery1.Select("it.ProductID");
foreach (DbDataRecord result in productQuery2)
{
Console.WriteLine("{0}", result["ProductID"]);
}
}
Комментарии
Когда приложение создает запросы Entity SQL во время выполнения, следует учитывать любые ограничения длины команд источника данных. Entity SQL не применяет ограничения на длину текста команды в запросах.