Container.GetItemLinqQueryable<T> Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Cette méthode crée une requête LINQ pour les éléments sous un conteneur dans un service Azure Cosmos DB. La méthode d’extension IQueryable ToFeedIterator() doit être utilisée pour l’exécution asynchrone avec FeedIterator. Reportez-vous à l’exemple 2.
public abstract System.Linq.IOrderedQueryable<T> GetItemLinqQueryable<T> (bool allowSynchronousQueryExecution = false, string continuationToken = default, Microsoft.Azure.Cosmos.QueryRequestOptions requestOptions = default, Microsoft.Azure.Cosmos.CosmosLinqSerializerOptions linqSerializerOptions = default);
abstract member GetItemLinqQueryable : bool * string * Microsoft.Azure.Cosmos.QueryRequestOptions * Microsoft.Azure.Cosmos.CosmosLinqSerializerOptions -> System.Linq.IOrderedQueryable<'T>
Public MustOverride Function GetItemLinqQueryable(Of T) (Optional allowSynchronousQueryExecution As Boolean = false, Optional continuationToken As String = Nothing, Optional requestOptions As QueryRequestOptions = Nothing, Optional linqSerializerOptions As CosmosLinqSerializerOptions = Nothing) As IOrderedQueryable(Of T)
Paramètres de type
- T
Type d’objet à interroger.
Paramètres
- allowSynchronousQueryExecution
- Boolean
(Facultatif)option qui permet d’exécuter la requête de manière synchrone via IOrderedQueryable.
- continuationToken
- String
(Facultatif) Jeton de continuation dans le service Azure Cosmos DB.
- requestOptions
- QueryRequestOptions
(Facultatif) Options de la demande de requête d’élément.
- linqSerializerOptions
- CosmosLinqSerializerOptions
(Facultatif) Options permettant de configurer les propriétés du sérialiseur Linq. Cela remplace les propriétés dans CosmosSerializerOptions lors de la création du client
Retours
(Facultatif) IOrderedQueryable{T} qui peut évaluer la requête.
Exemples
- Cet exemple ci-dessous montre la génération de requêtes LINQ et l’exécution bloquée.
public class Book
{
public string Title {get; set;}
public Author Author {get; set;}
public int Price {get; set;}
}
public class Author
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
// Query by the Title property
Book book = container.GetItemLinqQueryable<Book>(true)
.Where(b => b.Title == "War and Peace")
.AsEnumerable()
.FirstOrDefault();
// Query a nested property
Book otherBook = container.GetItemLinqQueryable<Book>(true)
.Where(b => b.Author.FirstName == "Leo")
.AsEnumerable()
.FirstOrDefault();
// Perform iteration on books
foreach (Book matchingBook in container.GetItemLinqQueryable<Book>(true)
.Where(b => b.Price > 100))
{
// Iterate through books
}
- Cet exemple ci-dessous montre la génération de requêtes LINQ et l’exécution asynchrone avec FeedIterator.
// LINQ query generation
using (FeedIterator<Book> setIterator = container.GetItemLinqQueryable<Book>()
.Where(b => b.Title == "War and Peace")
.ToFeedIterator())
{
//Asynchronous query execution
while (setIterator.HasMoreResults)
{
foreach(var item in await setIterator.ReadNextAsync())
{
Console.WriteLine(item.Price);
}
}
}
Remarques
L’exécution LINQ est synchrone, ce qui entraîne des problèmes liés au blocage des appels. Il est recommandé de toujours utiliser ToFeedIterator() et d’effectuer l’exécution asynchrone.
S’applique à
Voir aussi
Azure SDK for .NET