Podczas pracy z danymi Microsoft 365, takimi jak e‑maile, kalendarze, kontakty lub zadania, nie zawsze konieczne jest pobieranie wszystkich elementów. Przydatne jest także możliwość filtrowania, sortowania i pobierania określonych właściwości danych w aplikacjach pocztowych. Na przykład filtrowanie wiadomości według nadawcy, sortowanie zdarzeń kalendarza według daty lub pobieranie tylko kilku pól może pomóc utrzymać aplikację w szybkim działaniu.

Właśnie tutaj przydają się zapytania OData. Microsoft Graph obsługuje OData, aby pomóc programistom filtrować, sortować i wybierać dane bezpośrednio na serwerze, zanim zostaną one wysłane do Twojej aplikacji. Rezultatem jest szybsza wydajność, mniejsze ładunki danych i bardziej responsywne aplikacje.

Aspose.Email for .NET ułatwia ten proces dzięki klasie [ODataQueryBuilder][2]. W tym artykule przyjrzymy się, jak to działa i jak można używać tego do tworzenia dynamicznych, potężnych zapytań Microsoft Graph w języku C#.

Dlaczego używać zapytań OData?

Microsoft Graph API oferuje rozbudowane funkcje, ale może być skomplikowane przy ręcznym budowaniu zapytań. Parametry OData umożliwiają filtrowanie po stronie serwera, sortowanie, stronicowanie i wybór właściwości, co minimalizuje przetwarzanie po stronie klienta. Takie podejście zwiększa wydajność poprzez zmniejszenie transferu danych i przyspieszenie czasów odpowiedzi, co sprawia, że aplikacje są szybsze i bardziej skalowalne.

Dzięki obsłudze OData możesz teraz:

  • Filtruj wiadomości, kontakty lub zdarzenia przy użyciu niestandardowych warunków.
  • Sortuj dane za pomocą OrderBy w kolejności rosnącej lub malejącej.
  • Wybieraj tylko potrzebne właściwości, aby zminimalizować rozmiar ładunku.
  • Implementuj stronicowanie przy użyciu Top i Skip, idealne dla dużych skrzynek pocztowych.
  • Rozszerz powiązane encje (np. załączniki) za pomocą Expand.
  • Zliczaj i przeszukuj zestawy danych w celu szybszego dostępu.

Te możliwości są dostępne i typowo bezpieczne dzięki nowej klasie [ODataQueryBuilder][2].

Twój komponent .NET do budowania zapytań Microsoft Graph w C#

Aspose.Email for .NET to potężne API do przetwarzania wiadomości e‑mail, które umożliwia programistom bezpośrednią pracę z danymi Microsoft 365, Exchange i Outlook w języku C#. Obsługuje odczyt i zapis popularnych formatów e‑mail, takich jak MSG, EML, PST i MBOX, oraz integruje się z różnymi protokołami i usługami, w tym z Microsoft Graph API.

Korzystając z wbudowanego [ODataQueryBuilder][2], możesz tworzyć dynamiczne i typowo‑bezpieczne zapytania OData w języku C#. Umożliwia to łatwe filtrowanie, sortowanie i pobieranie konkretnych danych skrzynki pocztowej – wiadomości, kontakty lub wydarzenia kalendarza – bez ręcznego pisania skomplikowanych ciągów zapytań.

Przenosząc logikę zapytań na serwer Microsoft Graph, Aspose.Email for .NET pomaga programistom tworzyć szybsze, bardziej wydajne i skalowalne aplikacje, które współpracują z danymi Microsoft 365.

Aby rozpocząć, zainstaluj pakiet NuGet Aspose.Email w swoim projekcie .NET:

Install-Package Aspose.Email

Ten pakiet zawiera wszystkie niezbędne klasy, które spełnią Twoje potrzeby.

Wprowadzenie klasy ODataQueryBuilder

Klasa [Aspose.Email.Clients.Graph.ODataQueryBuilder][2] została zbudowana, aby uprościć sposób, w jaki tworzysz zapytania Graph. Możesz jej używać z kilkoma metodami klienta Graph, w tym:

  • ListFolders
  • ListMessages
  • ListContacts
  • ListCalendarItems
  • ListAttachments
  • ListCategories
  • ListOverrides
  • ListRules
  • ListTaskLists
  • ListTasks
  • ListNotebooks

Każdy z nich obsługuje opcjonalny parametr ODataQueryBuilder umożliwiający zaawansowane filtrowanie, sortowanie, stronicowanie i wybór, bezpośrednio w żądaniach Graph.

Praktyczny przykład: filtrowanie i sortowanie danych skrzynki pocztowej

Poniższy przykład kodu demonstruje zarówno podstawowe, jak i zaawansowane scenariusze zapytań. Prezentuje sortowanie folderów oraz zaawansowane filtrowanie wiadomości, ilustrując parametry OData dla kolejności, kryteriów, stronicowania, wybranych pól i rozszerzania powiązanych encji.

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);

Scenariusze rzeczywiste

Rozważ kilka praktycznych sytuacji, w których [ODataQueryBuilder][2] może być zastosowany w celu ulepszenia pracy z danymi Microsoft Graph w aplikacjach .NET:

1. Listy folderów UI
Sortuj foldery alfabetycznie [OrderBy][3] = "name asc" dla czystego interfejsu użytkownika.

2. Niestandardowe filtrowanie
Użyj [Filter][4], aby znaleźć wiadomości od konkretnych nadawców lub o określonych tematach.

3. Stronicowanie dużych skrzynek pocztowych
Połącz [Top][5] i [Skip][6], aby podzielić ogromne skrzynki pocztowe na łatwiejsze do zarządzania wyniki.

4. Wybierz określone właściwości
Pobierz tylko potrzebne pola za pomocą [Select][7], aby zminimalizować ładunek i przyspieszyć wydajność.

5. Dołącz powiązane dane
Użyj [Expand][8], aby dołączyć załączniki, kategorie lub wątki w jednym zapytaniu.

Wskazówki dotyczące efektywnego wykorzystania OData

  • Potwierdź, że Twój GraphClient dokładnie określa Resource, ResourceId oraz EndPoint.
  • Wybierz odpowiedniego dostawcę uwierzytelniania, takiego jak [AzureConfidentialTokenProvider][13].
  • Połącz [Filter][4], [Select][7], [OrderBy][3] i [Top][5] dla optymalnych zapytań.
  • Skorzystaj z [Count][14], aby uzyskać całkowitą liczbę elementów bez ładowania wszystkich danych.
  • Przygotuj logikę stronicowania, aby efektywnie obsługiwać duże zestawy danych.

Podsumowanie

W tym artykule nauczyliśmy się, jak używać klasy [ODataQueryBuilder][2] z biblioteki Aspose.Email for .NET do tworzenia i wykonywania zapytań Microsoft Graph. Zamiast ręcznie komponować składnię OData, możesz teraz tworzyć typowo‑bezpieczne, dynamiczne i czytelne zapytania bezpośrednio w kodzie C#. Wprowadzenie obsługi zapytań OData w Aspose.Email for .NET umożliwia programistom budowanie inteligentniejszych, bardziej wydajnych aplikacji współpracujących z Microsoft Graph.

Gotowy, aby budować szybsze i bardziej wydajne aplikacje .NET z Microsoft Graph?

Zobacz także