เมื่อทำงานกับข้อมูล 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 รวมถึง:
ListFoldersListMessagesListContactsListCalendarItemsListAttachmentsListCategoriesListOverridesListRulesListTaskListsListTasksListNotebooks
แต่ละตัวรองรับพารามิเตอร์ 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?
- ดาวน์โหลด เวอร์ชันล่าสุด Aspose.Email for .NET
- สำรวจ ตัวอย่างโค้ดเพิ่มเติมใน API Documentation
- ดาวน์โหลด ฟรี ใบอนุญาตชั่วคราว 30 วัน เพื่อประเมินไลบรารีโดยไม่มีข้อจำกัด.
