När du arbetar med Microsoft 365-data, såsom e‑post, kalendrar, kontakter eller uppgifter, är det inte alltid nödvändigt att hämta alla objekt. Det är också användbart att kunna filtrera, sortera och hämta specifika dataproperty i dina e‑postapplikationer. Till exempel kan filtrering av meddelanden efter avsändare, sortering av kalenderhändelser efter datum eller hämtning av endast några få fält hjälpa till att hålla din app snabb.
Det är där OData‑frågor kommer in. Microsoft Graph stöder OData för att hjälpa utvecklare att filtrera, sortera och välja data direkt på servern innan den ens skickas till din app. Resultatet blir högre prestanda, mindre data och mer responsiva applikationer.
Aspose.Email for .NET gör den här processen enkel med sin [ODataQueryBuilder][2]‑klass. I den här artikeln kommer vi att utforska hur den fungerar och hur du kan använda den för att bygga dynamiska, kraftfulla Microsoft Graph‑frågor i C#.
Varför använda OData-frågor?
Microsoft Graph API erbjuder omfattande funktioner men kan vara komplex när du bygger frågor manuellt. OData‑parametrar möjliggör filtrering, sortering, sidindelning och egenskapsval på servern, vilket minimerar klientbearbetning. Detta tillvägagångssätt förbättrar effektiviteten genom att minska dataöverföringen och påskynda svarstiderna, vilket gör dina applikationer snabbare och mer skalbara.
Med OData‑stöd kan du nu:
- Filtrera meddelanden, kontakter eller händelser med anpassade villkor.
- Sortera data via
OrderByför stigande eller fallande ordning. - Välj endast de nödvändiga egenskaperna för att minimera payload‑storleken.
- Implementera sidindelning med
TopochSkip, idealiskt för stora brevlådor. - Expandera relaterade enheter (t.ex. bilagor) med
Expand. - Räkna och sök i dataset för snabbare åtkomst.
Dessa funktioner är tillgängliga och typ‑säkra via den nya klassen [ODataQueryBuilder][2] .
Din .NET-komponent för att bygga Microsoft Graph‑frågor i C#
Aspose.Email for .NET är ett kraftfullt API för e‑postbehandling som gör det möjligt för utvecklare att arbeta direkt med Microsoft 365, Exchange och Outlook‑data i C#. Det stöder läsning och skrivning av populära e‑postformat, såsom MSG, EML, PST och MBOX, och integreras med olika protokoll och tjänster, inklusive Microsoft Graph API.
Med den inbyggda [ODataQueryBuilder][2] kan du skapa dynamiska och typ‑säkra OData‑frågor i C#. Detta gör det enkelt att filtrera, sortera och hämta specifik brevlådedata – meddelanden, kontakter eller kalenderhändelser utan att manuellt skriva komplexa frågesträngar.
Genom att avlasta frågelogiken till Microsoft Graph‑servern hjälper Aspose.Email for .NET utvecklare att skapa snabbare, mer effektiva och skalbara applikationer som interagerar med Microsoft 365‑data.
För att komma igång, installera Aspose.Email NuGet‑paketet i ditt .NET‑projekt:
Install-Package Aspose.Email
Detta paket innehåller alla nödvändiga klasser som uppfyller dina behov.
Introduktion av ODataQueryBuilder-klassen
Klassen [Aspose.Email.Clients.Graph.ODataQueryBuilder][2] är byggd för att förenkla hur du skriver Graph‑frågor. Du kan använda den med flera Graph‑klientmetoder, inklusive:
ListFoldersListMessagesListContactsListCalendarItemsListAttachmentsListCategoriesListOverridesListRulesListTaskListsListTasksListNotebooks
Var och en stöder en valfri ODataQueryBuilder-parameter för avancerad filtrering, sortering, sidindelning och urval, direkt i dina Graph‑förfrågningar.
Praktiskt exempel: filtrera och sortera brevlådedata
Kodexemplet nedan demonstrerar både grundläggande och avancerade frågescenarier. Det visar mappsortering och avancerad meddelandefiltrering, och illustrerar OData‑parametrar för sortering, kriterier, sidindelning, valda fält och expansion av relaterade enheter.
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);
Verkliga scenarier
Tänk på några praktiska situationer där [ODataQueryBuilder][2] kan tillämpas för att förbättra arbetet med Microsoft Graph‑data i dina .NET‑applikationer:
1. UI-mapplistor
Sortera mappar alfabetiskt [OrderBy][3] = "name asc" för ett rent användargränssnitt.
2. Anpassad filtrering
Använd [Filter][4] för att hitta meddelanden från specifika avsändare eller med vissa ämnen.
3. Sidindelning av stora brevlådor
Kombinera [Top][5] och [Skip][6] för att dela upp stora brevlådor i hanterbara resultat.
4. Välj specifika egenskaper
Hämta endast de fält du behöver med [Select][7] för att minimera belastning och öka prestanda.
5. Inkludera relaterad data
Använd [Expand][8] för att inkludera bilagor, kategorier eller trådar i en enda fråga.
Tips för effektiv OData-användning
- Bekräfta att din GraphClient exakt specificerar Resource, ResourceId och EndPoint.
- Välj en lämplig autentiseringsleverantör, till exempel [AzureConfidentialTokenProvider][13].
- Kombinera [Filter][4], [Select][7], [OrderBy][3] och [Top][5] för optimala frågor.
- Använd [Count][14] för att få totala antalet objekt utan att ladda all data.
- Förbered pagineringslogik för att hantera stora dataset effektivt.
Slutsats
I den här artikeln har vi lärt oss hur man använder klassen [ODataQueryBuilder][2] i Aspose.Email for .NET‑biblioteket för att bygga och köra Microsoft Graph‑frågor. Istället för att manuellt komponera OData‑syntax kan du nu skapa typ‑säkra, dynamiska och läsbara frågor direkt i din C#‑kod. Introduktionen av OData‑frågestöd i Aspose.Email for .NET ger utvecklare möjlighet att bygga smartare, mer effektiva applikationer som interagerar med Microsoft Graph.
Redo att bygga snabbare och mer effektiva .NET-applikationer med Microsoft Graph?
- Ladda ner den senaste Aspose.Email for .NET
- Utforska fler kodexempel i API-dokumentation
- Ladda ner en gratis 30-dagars tillfällig licens för att utvärdera biblioteket utan begränsningar.
