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ą
OrderByw kolejności rosnącej lub malejącej. - Wybieraj tylko potrzebne właściwości, aby zminimalizować rozmiar ładunku.
- Implementuj stronicowanie przy użyciu
TopiSkip, 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:
ListFoldersListMessagesListContactsListCalendarItemsListAttachmentsListCategoriesListOverridesListRulesListTaskListsListTasksListNotebooks
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?
- Pobierz najnowszy Aspose.Email for .NET
- Zapoznaj się więcej przykładów kodu w API Documentation
- Pobierz darmową 30-day temporary license aby ocenić bibliotekę bez ograniczeń.
