Khi làm việc với dữ liệu Microsoft 365, chẳng hạn như email, lịch, danh bạ hoặc nhiệm vụ, không phải lúc nào cũng cần lấy tất cả các mục. Ngoài ra, việc có thể lọc, sắp xếp và truy xuất các thuộc tính dữ liệu cụ thể trong các ứng dụng email của bạn cũng rất hữu ích. Ví dụ, lọc tin nhắn theo người gửi, sắp xếp sự kiện lịch theo ngày hoặc chỉ lấy một vài trường dữ liệu có thể giúp ứng dụng của bạn chạy nhanh hơn.
Đó là nơi các truy vấn OData xuất hiện. Microsoft Graph hỗ trợ OData để giúp các nhà phát triển lọc, sắp xếp và chọn dữ liệu trực tiếp trên máy chủ trước khi nó được gửi tới ứng dụng của bạn. Kết quả là hiệu năng nhanh hơn, tải trọng nhỏ hơn và các ứng dụng phản hồi tốt hơn.
Aspose.Email for .NET làm cho quá trình này trở nên dễ dàng với lớp [ODataQueryBuilder][2] của nó. Trong bài viết này, chúng ta sẽ khám phá cách nó hoạt động và cách bạn có thể sử dụng nó để xây dựng các truy vấn Microsoft Graph động, mạnh mẽ trong C#.
Tại sao nên sử dụng truy vấn OData?
Microsoft Graph API cung cấp nhiều tính năng phong phú nhưng có thể phức tạp khi xây dựng truy vấn thủ công. Các tham số OData cho phép lọc, sắp xếp, phân trang và chọn thuộc tính phía máy chủ, giúp giảm thiểu xử lý phía client. Cách tiếp cận này tăng hiệu quả bằng cách giảm lượng dữ liệu truyền và tăng tốc thời gian phản hồi, làm cho ứng dụng của bạn nhanh hơn và mở rộng tốt hơn.
Với hỗ trợ OData, bạn hiện có thể:
- Lọc tin nhắn, danh bạ hoặc sự kiện bằng các điều kiện tùy chỉnh.
- Sắp xếp dữ liệu bằng
OrderBytheo thứ tự tăng hoặc giảm. - Chỉ chọn các thuộc tính cần thiết để giảm kích thước tải trọng.
- Thực hiện phân trang bằng
TopvàSkip, lý tưởng cho hộp thư lớn. - Mở rộng các thực thể liên quan (ví dụ: tệp đính kèm) bằng
Expand. - Đếm và tìm kiếm các bộ dữ liệu để truy cập nhanh hơn.
Các khả năng này có thể truy cập và an toàn kiểu thông qua lớp [ODataQueryBuilder][2] mới.
Thành phần .NET của bạn để xây dựng các truy vấn Microsoft Graph bằng C#
Aspose.Email for .NET là một API mạnh mẽ để xử lý email cho phép các nhà phát triển làm việc trực tiếp với dữ liệu Microsoft 365, Exchange và Outlook trong C#. Nó hỗ trợ việc đọc và ghi các định dạng email phổ biến, như MSG, EML, PST và MBOX, và tích hợp với nhiều giao thức và dịch vụ khác nhau, bao gồm Microsoft Graph API.
Sử dụng [ODataQueryBuilder][2] tích hợp sẵn, bạn có thể xây dựng các truy vấn OData động và an toàn về kiểu trong C#. Điều này giúp dễ dàng lọc, sắp xếp và truy xuất dữ liệu hộp thư cụ thể — tin nhắn, danh bạ hoặc sự kiện lịch mà không cần viết các chuỗi truy vấn phức tạp bằng tay.
Bằng cách chuyển tải logic truy vấn sang máy chủ Microsoft Graph, Aspose.Email for .NET giúp các nhà phát triển tạo ra các ứng dụng nhanh hơn, hiệu quả hơn và có khả năng mở rộng, tương tác với dữ liệu Microsoft 365.
Để bắt đầu, hãy cài đặt gói NuGet Aspose.Email trong dự án .NET của bạn:
Install-Package Aspose.Email
Gói này bao gồm tất cả các lớp cần thiết để đáp ứng nhu cầu của bạn.
Giới thiệu lớp ODataQueryBuilder
Lớp [Aspose.Email.Clients.Graph.ODataQueryBuilder][2] được xây dựng để đơn giản hoá cách bạn viết các truy vấn Graph. Bạn có thể sử dụng nó với một số phương thức client của Graph, bao gồm:
ListFoldersListMessagesListContactsListCalendarItemsListAttachmentsListCategoriesListOverridesListRulesListTaskListsListTasksListNotebooks
Mỗi hỗ trợ một tham số tùy chọn ODataQueryBuilder để lọc nâng cao, sắp xếp, phân trang và lựa chọn, ngay trong các yêu cầu Graph của bạn.
Ví dụ thực tế: Lọc và sắp xếp dữ liệu hộp thư
Mẫu mã dưới đây minh họa cả các kịch bản truy vấn cơ bản và nâng cao. Nó trình bày việc sắp xếp thư mục và lọc tin nhắn nâng cao, mô tả các tham số OData cho thứ tự, tiêu chí, phân trang, các trường được chọn và mở rộng các thực thể liên quan.
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);
Các kịch bản thực tế
Xem một số tình huống thực tế mà [ODataQueryBuilder][2] có thể được áp dụng để cải thiện việc làm việc với dữ liệu Microsoft Graph trong các ứng dụng .NET của bạn:
1. Danh sách thư mục UI
Sắp xếp các thư mục theo thứ tự alphabet [OrderBy][3] = "name asc" để có giao diện người dùng sạch sẽ.
2. Lọc tùy chỉnh
Sử dụng [Filter][4] để tìm các tin nhắn từ người gửi cụ thể hoặc có tiêu đề nhất định.
3. Phân trang Hộp thư lớn
Kết hợp [Top][5] và [Skip][6] để chia các hộp thư lớn thành các kết quả có thể quản lý.
4. Chọn các thuộc tính cụ thể
Lấy chỉ các trường bạn cần với [Select][7] để giảm tải dữ liệu và tăng tốc hiệu suất.
5. Bao gồm dữ liệu liên quan
Sử dụng [Expand][8] để bao gồm các tệp đính kèm, danh mục hoặc chuỗi trong một truy vấn duy nhất.
Mẹo để Sử dụng OData Hiệu quả
- Xác nhận rằng GraphClient của bạn chỉ định chính xác Resource, ResourceId và EndPoint.
- Chọn một nhà cung cấp xác thực phù hợp, chẳng hạn như [AzureConfidentialTokenProvider][13].
- Kết hợp [Filter][4], [Select][7], [OrderBy][3] và [Top][5] để có các truy vấn tối ưu.
- Sử dụng [Count][14] để lấy tổng số mục mà không cần tải toàn bộ dữ liệu.
- Chuẩn bị logic phân trang để xử lý các tập dữ liệu lớn một cách hiệu quả.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách sử dụng lớp [ODataQueryBuilder][2] của thư viện Aspose.Email for .NET để xây dựng và thực thi các truy vấn Microsoft Graph. Thay vì phải soạn cú pháp OData thủ công, bạn giờ có thể tạo các truy vấn an toàn kiểu, động và dễ đọc trực tiếp trong mã C# của mình. Việc giới thiệu hỗ trợ truy vấn OData trong Aspose.Email for .NET giúp các nhà phát triển xây dựng các ứng dụng thông minh hơn, hiệu quả hơn, tương tác với Microsoft Graph.
Sẵn sàng xây dựng các ứng dụng .NET nhanh hơn và hiệu quả hơn với Microsoft Graph?
- Tải xuống phiên bản mới nhất của Aspose.Email for .NET
- Khám phá thêm các ví dụ mã trong API Documentation
- Tải xuống giấy phép tạm thời miễn phí trong 30‑ngày để đánh giá thư viện mà không có hạn chế.
