Quando si lavora con i dati di Microsoft 365, come email, calendari, contatti o attività, non è sempre necessario recuperare tutti gli elementi. È inoltre utile poter filtrare, ordinare e recuperare proprietà di dati specifiche nelle proprie applicazioni di posta elettronica. Ad esempio, filtrare i messaggi per mittente, ordinare gli eventi del calendario per data o recuperare solo pochi campi può aiutare a mantenere l’app veloce.
È qui che entrano in gioco le query OData. Microsoft Graph supporta OData per aiutare gli sviluppatori a filtrare, ordinare e selezionare i dati direttamente sul server prima che vengano inviati alla tua app. Il risultato è una maggiore velocità, payload più piccoli e applicazioni più reattive.
Aspose.Email for .NET rende questo processo semplice con la sua classe [ODataQueryBuilder][2]. In questo articolo, esploreremo come funziona e come è possibile usarla per creare query Microsoft Graph dinamiche e potenti in C#.
Perché usare le query OData?
Le API Microsoft Graph offrono funzionalità estese ma possono risultare complesse quando si costruiscono query manualmente. I parametri OData consentono filtraggio, ordinamento, paginazione e selezione delle proprietà lato server, riducendo al minimo l’elaborazione lato client. Questo approccio migliora l’efficienza riducendo il trasferimento dei dati e accelerando i tempi di risposta, rendendo le tue applicazioni più veloci e scalabili.
Con il supporto OData, ora puoi:
- Filtra messaggi, contatti o eventi usando condizioni personalizzate.
- Ordina i dati tramite
OrderByper ordine ascendente o discendente. - Seleziona solo le proprietà necessarie per ridurre la dimensione del payload.
- Implementa il paging usando
TopeSkip, ideale per cassette postali di grandi dimensioni. - Espandi le entità correlate (ad esempio, allegati) con
Expand. - Conta e ricerca i set di dati per un accesso più rapido.
Queste funzionalità sono accessibili e tipizzate in modo sicuro tramite la nuova classe [ODataQueryBuilder][2].
Il tuo componente .NET per creare query Microsoft Graph in C#
Aspose.Email for .NET è una potente API per l’elaborazione delle email che consente agli sviluppatori di lavorare direttamente con i dati di Microsoft 365, Exchange e Outlook in C#. Supporta la lettura e la scrittura di formati email popolari, come MSG, EML, PST e MBOX, e si integra con vari protocolli e servizi, incluso l’API Microsoft Graph.
Utilizzando il [ODataQueryBuilder][2] integrato, è possibile creare query OData dinamiche e type‑safe in C#. Questo rende più semplice filtrare, ordinare e recuperare dati specifici della casella di posta - messaggi, contatti o eventi del calendario senza scrivere manualmente stringhe di query complesse.
Spostando la logica delle query sul server Microsoft Graph, Aspose.Email for .NET aiuta gli sviluppatori a creare applicazioni più rapide, più efficienti e scalabili che interagiscono con i dati di Microsoft 365.
Per iniziare, installa il pacchetto NuGet Aspose.Email nel tuo progetto .NET:
Install-Package Aspose.Email
Questo pacchetto include tutte le classi necessarie per soddisfare le tue esigenze.
Introduzione alla classe ODataQueryBuilder
La classe [Aspose.Email.Clients.Graph.ODataQueryBuilder][2] è stata creata per semplificare il modo in cui scrivi le query Graph. Puoi usarla con diversi metodi client di Graph, tra cui:
ListFoldersListMessagesListContactsListCalendarItemsListAttachmentsListCategoriesListOverridesListRulesListTaskListsListTasksListNotebooks
Ogni chiamata supporta un parametro opzionale ODataQueryBuilder per filtraggio avanzato, ordinamento, paginazione e selezione, direttamente all’interno delle tue richieste Graph.
Esempio pratico: filtrare e ordinare i dati della casella di posta
Il seguente esempio di codice dimostra sia scenari di query di base che avanzati. Mostra l’ordinamento delle cartelle e il filtraggio avanzato dei messaggi, illustrando i parametri OData per l’ordine, i criteri, la paginazione, i campi selezionati e l’espansione delle entità correlate.
var accessParameters = Settings.User1;
var provider = new AzureConfidentialTokenProvider(
accessParameters.TenantId,
accessParameters.ClientId,
accessParameters.ClientSecret);
var client = GraphClient.GetClient(provider, accessParameters.TenantId);
client.Resource = Aspose.Email.Clients.Graph.ResourceType.Users;
client.ResourceId = accessParameters.Username;
client.EndPoint = "https://graph.microsoft.com";
// List folders sorted by name
var builder = new ODataQueryBuilder { OrderBy = "name asc" };
var folders = client.ListFolders(builder);
foreach (var folder in folders)
Console.WriteLine(folder.DisplayName);
// Advanced message filtering
var folderId = folders.Find(x => x.DisplayName == "Inbox").ItemId;
builder = new ODataQueryBuilder {
Filter = "startswith(name,'A')",
OrderBy = "name asc",
Top = 10,
Skip = 5,
Select = new[] { "name", "age" },
Expand = new[] { "children", "parents" },
Count = true,
Search = "\"John Doe\"",
Format = "json"
};
var msgs = client.ListMessages(folderId, builder);
foreach (var msg in msgs)
Console.WriteLine(msg.Subject);
Scenari del mondo reale
Considera alcune situazioni pratiche in cui il [ODataQueryBuilder][2] può essere applicato per migliorare il lavoro con i dati di Microsoft Graph nelle tue applicazioni .NET:
1. Elenchi Cartelle UI
Ordina le cartelle alfabeticamente [OrderBy][3] = "name asc" per un’interfaccia utente pulita.
2. Filtraggio personalizzato
Usa [Filter][4] per trovare i messaggi da mittenti specifici o con determinati oggetti.
3. Paginazione di cassette postali di grandi dimensioni
Combina [Top][5] e [Skip][6] per suddividere le cassette postali enormi in risultati gestibili.
4. Seleziona Proprietà Specifiche
Recupera solo i campi di cui hai bisogno con [Select][7] per ridurre al minimo il payload e migliorare le prestazioni.
5. Includi Dati Correlati
Usa [Expand][8] per includere allegati, categorie o discussioni in un’unica query.
Suggerimenti per un utilizzo efficace di OData
- Conferma che il tuo GraphClient specifichi correttamente Resource, ResourceId e EndPoint.
- Scegli un provider di autenticazione appropriato, come [AzureConfidentialTokenProvider][13].
- Combina [Filter][4], [Select][7], [OrderBy][3] e [Top][5] per query ottimali.
- Utilizza [Count][14] per ottenere il numero totale di elementi senza caricare tutti i dati.
- Prepara la logica di paginazione per gestire grandi set di dati in modo efficiente.
Conclusione
In questo articolo, abbiamo imparato come utilizzare la classe [ODataQueryBuilder][2] della libreria Aspose.Email for .NET per creare ed eseguire query Microsoft Graph. Invece di comporre manualmente la sintassi OData, ora è possibile creare query tipizzate, dinamiche e leggibili direttamente nel tuo codice C#. L’introduzione del supporto alle query OData in Aspose.Email for .NET consente agli sviluppatori di creare applicazioni più intelligenti ed efficienti che interagiscono con Microsoft Graph.
Pronto a creare applicazioni .NET più rapide ed efficienti con Microsoft Graph?
- Scarica l’ultima versione Aspose.Email for .NET
- Esplora più esempi di codice nella Documentazione API
- Scarica una licenza temporanea gratuita di 30 giorni per valutare la libreria senza limitazioni.
