ObjectQuery<T>.Distinct Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Ограничивает запрос для выдачи результатов без повторов.
public:
System::Data::Objects::ObjectQuery<T> ^ Distinct();
public System.Data.Objects.ObjectQuery<T> Distinct ();
member this.Distinct : unit -> System.Data.Objects.ObjectQuery<'T>
Public Function Distinct () As ObjectQuery(Of T)
Возвращаемое значение
Новый экземпляр запроса ObjectQuery<T>, эквивалентный первоначальному экземпляру с примененным к нему предложением SELECT DISTINCT.
Примеры
В этом примере используется UnionAll метод для создания нового ObjectQuery<T> объекта . Затем к новому объекту Distinct применяется ключевое слово ObjectQuery<T> для получения неповторяющихся результатов запроса.
int productID = 100;
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
string queryString =
@"SELECT VALUE product FROM AdventureWorksEntities.Products
AS product WHERE product.ProductID < @productID";
ObjectQuery<Product> productQuery =
new ObjectQuery<Product>(queryString,
context, MergeOption.NoTracking);
ObjectQuery<Product> productQuery2 =
new ObjectQuery<Product>(queryString,
context, MergeOption.NoTracking);
ObjectQuery<Product> productQuery3 =
productQuery.UnionAll(productQuery2);
productQuery3.Parameters.Add(new ObjectParameter("productID", productID));
Console.WriteLine("Result of UnionAll");
Console.WriteLine("------------------");
// Iterate through the collection of Product items,
// after the UnionAll method was called on two queries.
foreach (Product result in productQuery3)
{
Console.WriteLine("Product Name: {0}", result.ProductID);
}
ObjectQuery<Product> productQuery4 = productQuery3.Distinct();
Console.WriteLine("\nResult of Distinct");
Console.WriteLine("------------------");
// Iterate through the collection of Product items.
// after the Distinct method was called on a query.
foreach (Product result in productQuery4)
Console.WriteLine("Product Name: {0}", result.ProductID);
}
Комментарии
Этот метод построителя запросов возвращает экземпляр, эквивалентный ObjectQuery<T> исходному запросу с примененным select DISTINCT .
Оператор DISTINCT
нельзя применить к объекту, который содержит сопоставление с несопоставимым столбцом в источнике данных (например, ntext).