เมื่อทำงานกับข้อมูล Microsoft 365 เช่น อีเมล ปฏิทิน รายชื่อผู้ติดต่อ หรือ งาน ไม่จำเป็นต้องดึงข้อมูลทั้งหมดเสมอไป นอกจากนี้ การสามารถกรอง เรียงลำดับ และดึงคุณสมบัติเฉพาะของข้อมูลในแอปอีเมลของคุณก็มีประโยชน์ ตัวอย่างเช่น การกรองข้อความตามผู้ส่ง การเรียงลำดับเหตุการณ์ในปฏิทินตามวันที่ หรือการดึงเฉพาะบางฟิลด์ สามารถช่วยให้แอปของคุณทำงานได้เร็วขึ้น

นั่นคือจุดที่การสืบค้น OData เข้ามามีบทบาท Microsoft Graph รองรับ OData เพื่อช่วยให้นักพัฒนาสามารถกรอง, เรียงลำดับ, และเลือกข้อมูลโดยตรงบนเซิร์ฟเวอร์ก่อนที่ข้อมูลจะถูกส่งไปยังแอปของคุณ ผลลัพธ์คือประสิทธิภาพที่เร็วขึ้น, ปริมาณข้อมูลที่เล็กลง, และแอปพลิเคชันที่ตอบสนองได้ดียิ่งขึ้น.

Aspose.Email for .NET ทำให้กระบวนการนี้ง่ายขึ้นด้วยคลาส [ODataQueryBuilder][2] ของมัน ในบทความนี้ เราจะสำรวจวิธีการทำงานและวิธีที่คุณสามารถใช้เพื่อสร้างคำสั่ง Microsoft Graph ที่เป็นแบบไดนามิกและมีประสิทธิภาพใน C#.

ทำไมต้องใช้ OData Queries?

Microsoft Graph API มีคุณสมบัติที่ครอบคลุมมาก แต่การสร้างคิวรีด้วยตนเองอาจซับซ้อน พารามิเตอร์ OData ช่วยให้สามารถทำการกรอง การจัดเรียง การแบ่งหน้า และการเลือกคุณสมบัติบนฝั่งเซิร์ฟเวอร์ได้ ซึ่งช่วยลดการประมวลผลบนฝั่งไคลเอนต์ วิธีการนี้ช่วยเพิ่มประสิทธิภาพโดยลดการถ่ายโอนข้อมูลและเร่งความเร็วในการตอบสนอง ทำให้แอปพลิเคชันของคุณเร็วขึ้นและขยายตัวได้ดีขึ้น

ด้วยการสนับสนุน OData ตอนนี้คุณสามารถ:

  • กรองข้อความ รายชื่อผู้ติดต่อ หรือเหตุการณ์โดยใช้เงื่อนไขที่กำหนดเอง.
  • เรียงลำดับข้อมูลโดยใช้ OrderBy สำหรับลำดับจากน้อยไปมากหรือมากไปน้อย.
  • เลือกเฉพาะคุณสมบัติที่ต้องการเพื่อให้ขนาดข้อมูลที่ส่งลดลง.
  • ใช้การแบ่งหน้าโดยใช้ Top และ Skip เหมาะสำหรับกล่องจดหมายขนาดใหญ่.
  • ขยายเอนทิตีที่เกี่ยวข้อง (เช่น ไฟล์แนบ) ด้วย Expand.
  • นับและค้นหาชุดข้อมูลเพื่อการเข้าถึงที่เร็วขึ้น.

ความสามารถเหล่านี้สามารถเข้าถึงได้และปลอดภัยต่อประเภทผ่านคลาสใหม่ [ODataQueryBuilder][2] class.

คอมโพเนนต์ .NET ของคุณสำหรับสร้างคำสั่ง Microsoft Graph ใน C#

Aspose.Email for .NET เป็น API ที่มีประสิทธิภาพสำหรับการประมวลผลอีเมลที่ช่วยให้นักพัฒนาสามารถทำงานโดยตรงกับข้อมูล Microsoft 365, Exchange และ Outlook ใน C# ได้ มันรองรับการอ่านและเขียนรูปแบบอีเมลที่เป็นที่นิยม เช่น MSG, EML, PST และ MBOX และรวมเข้ากับโปรโตคอลและบริการต่าง ๆ รวมถึง Microsoft Graph API

โดยใช้ [ODataQueryBuilder][2] ที่มีมาในตัว, คุณสามารถสร้างคำสั่ง OData แบบไดนามิกและปลอดภัยต่อประเภทใน C# ได้ สิ่งนี้ทำให้การกรอง, การเรียงลำดับ, และการดึงข้อมูลกล่องจดหมายเฉพาะ เช่น ข้อความ, รายชื่อผู้ติดต่อ หรือเหตุการณ์ในปฏิทิน เป็นเรื่องง่ายโดยไม่ต้องเขียนสตริงคำสั่งที่ซับซ้อนด้วยตนเอง.

โดยการถ่ายโอนตรรกะการค้นหาไปยังเซิร์ฟเวอร์ Microsoft Graph, Aspose.Email for .NET ช่วยให้นักพัฒนาสร้างแอปพลิเคชันที่เร็วขึ้น มีประสิทธิภาพมากขึ้น และสามารถขยายได้ ซึ่งทำงานร่วมกับข้อมูล Microsoft 365.

เพื่อเริ่มต้น ให้ติดตั้งแพคเกจ Aspose.Email NuGet ในโครงการ .NET ของคุณ:

Install-Package Aspose.Email

แพคเกจนี้รวมคลาสที่จำเป็นทั้งหมดเพื่อให้ตรงกับความต้องการของคุณ.

แนะนำคลาส ODataQueryBuilder

คลาส [Aspose.Email.Clients.Graph.ODataQueryBuilder][2] ถูกสร้างขึ้นเพื่อทำให้การเขียนคิวรี Graph ง่ายขึ้น คุณสามารถใช้มันกับหลายเมธอดของไคลเอนต์ Graph รวมถึง:

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

แต่ละตัวรองรับพารามิเตอร์ ODataQueryBuilder แบบเลือกได้สำหรับการกรองขั้นสูง การจัดเรียง การแบ่งหน้า และการเลือก โดยตรงภายในคำขอ Graph ของคุณ

ตัวอย่างเชิงปฏิบัติ: การกรองและจัดเรียงข้อมูลกล่องจดหมาย

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นทั้งสถานการณ์การสอบถามพื้นฐานและขั้นสูง มันแสดงการจัดเรียงโฟลเดอร์และการกรองข้อความขั้นสูง โดยอธิบายพารามิเตอร์ OData สำหรับการเรียงลำดับ, เกณฑ์, การแบ่งหน้า, ฟิลด์ที่เลือก, และการขยายเอนทิตี้ที่เกี่ยวข้อง.

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

สถานการณ์ในโลกจริง

พิจารณาบางสถานการณ์เชิงปฏิบัติที่สามารถใช้ [ODataQueryBuilder][2] เพื่อเพิ่มประสิทธิภาพการทำงานกับข้อมูล Microsoft Graph ในแอปพลิเคชัน .NET ของคุณ:

1. รายการโฟลเดอร์ UI
จัดเรียงโฟลเดอร์ตามตัวอักษร [OrderBy][3] = "name asc" เพื่อให้ส่วนต่อผู้ใช้สะอาดตา

2. การกรองแบบกำหนดเอง
ใช้ [Filter][4] เพื่อค้นหาข้อความจากผู้ส่งเฉพาะหรือด้วยหัวข้อบางอย่าง

3. การแบ่งหน้า Mailbox ขนาดใหญ่
รวม [Top][5] และ [Skip][6] เพื่อแยกกล่องเมลขนาดใหญ่เป็นผลลัพธ์ที่จัดการได้

4. เลือกคุณสมบัติเฉพาะ
ดึงเฉพาะฟิลด์ที่คุณต้องการด้วย [Select][7] เพื่อให้ข้อมูลน้อยที่สุดและเพิ่มความเร็วของประสิทธิภาพ

5. รวมข้อมูลที่เกี่ยวข้อง
ใช้ [Expand][8] เพื่อรวมไฟล์แนบ, หมวดหมู่ หรือเธรดในคำสั่งเดียว

เคล็ดลับสำหรับการใช้ OData อย่างมีประสิทธิภาพ

  • ยืนยันว่า GraphClient ของคุณระบุ Resource, ResourceId และ EndPoint อย่างแม่นยำ
  • เลือกผู้ให้บริการการตรวจสอบสิทธิ์ที่เหมาะสม เช่น [AzureConfidentialTokenProvider][13]
  • รวม [Filter][4], [Select][7], [OrderBy][3] และ [Top][5] เพื่อการสอบถามที่เหมาะสมที่สุด
  • ใช้ [Count][14] เพื่อรับจำนวนรายการทั้งหมดโดยไม่ต้องโหลดข้อมูลทั้งหมด
  • เตรียมการทำงานของ paging เพื่อจัดการชุดข้อมูลขนาดใหญ่อย่างมีประสิทธิภาพ

สรุป

ในบทความนี้ เราได้เรียนรู้วิธีใช้คลาส [ODataQueryBuilder][2] ของไลบรารี Aspose.Email for .NET สำหรับการสร้างและดำเนินการคิวรี Microsoft Graph แทนการเขียนไวยากรณ์ OData ด้วยตนเอง คุณสามารถสร้างคิวรีที่ปลอดภัยต่อประเภท, แบบไดนามิก, และอ่านง่ายโดยตรงในโค้ด C# ของคุณ การแนะนำการสนับสนุนคิวรี OData ใน Aspose.Email for .NET ทำให้ผู้พัฒนาสามารถสร้างแอปพลิเคชันที่ฉลาดและมีประสิทธิภาพมากขึ้นที่โต้ตอบกับ Microsoft Graph.

พร้อมหรือยังที่จะสร้างแอปพลิเคชัน .NET ที่เร็วขึ้นและมีประสิทธิภาพมากขึ้นด้วย Microsoft Graph?

ดูเพิ่มเติม