Kết nối

  • Trang chủ
  • /
  • LINQ
  • /
  • Các toán tử truy vấn chuẩn trong LINQ để truy vấn các thực thể

Các toán tử truy vấn chuẩn trong LINQ để truy vấn các thực thể

5.388 lượt xem 
 
Thể loại: LINQ 

Trong một truy vấn, chúng ta phải đặc tả thông tin cần lấy từ nguồn dữ liêu. Một truy vấn cũng có thể đặc tả cách thông tin nên được sắp xếp, gom nhóm và hình thành trước khi được trả về. LINQ cung cấp một tập hợp các phương thức truy vấn chuẩn mà bạn có thể sử dụng để truy vấn. Đa số các phương thức hoạt động trên các trình tự (sequence); theo cách này, một trình tự là một đối tượng mà có dạng thực thi giao diện IEnumerable hoặc giao diện IQueryable.

Các toán tử truy vấn chuẩn

Các toán tử truy vấn chuẩn chứa tính năng lọc, tham chiếu, tổng hợp, sắp xếp, gom nhóm, phân trang và nhiều tính năng khác. Bài viết cung cấp một số phương thức trong LINQ thường dùng để thao tác với các nguồn dữ liệu mà bạn bắt buộc phải học nếu muốn thành thạo LINQ.

Các phương thứ tham chiếu (projection) và trích lọc (filtering)

Tham chiếu là việc chuyển đổi các phần tử ở tập kết quả thành một dạng khác mong muốn. Ví dụ, bạn muốn tham chiếu tập hợp con của các thuộc tính bạn cần từ mỗi đối tượng trong tập kết quả, bạn có thể tham chiếu một thuộc tính và thực thi một tính toán toán học trên nó, hoặc có thể tham chiếu toàn bộ đối tượng từ tập kết quả. Các phương thức tham chiếu bao gồm Select và SelectMany.

Trích lọc là hoạt động giới hạn tập kết quả chứa những phần tử khớp với điều kiện nào đó. Phương thức trích lọc là Where.

Các phương thức kết nối (join)

Kết nối (join) là một hành động quan trọng trong các truy vấn nhắm đến các nguồn dữ liệu không có quan hệ điều hướng (navigation) với nhau. Kết nối 2 nguồn dữ liệu là sự kết hợp các đối tượng trong một nguồn dữ liệu với các đối tượng trong nguồn dữ liệu khác có cùng một thuộc tính chung. Các phương thức kết nối là Join và GroupJoin.

Liên quan:  [LINQ] Phần 7: Các tính năng trong C# hỗ trợ LINQ

Các phương thức tập hợp (set)

Các phương thức tập hợp trong LINQ là các hoạt động truy vấn dựa trên các tập kết quả của chúng với sự hiện diện hoặc vắng mặt của các phần tử tương đương trong cùng một hoặc trong một tập khác. Các phương thức tập hợp gồm All, Any, Concat, Contains, DefaultIfEmpty, Distinct, EqualAll, Except, Intersect, và Union.

Các quá tải phương thức trong tập hợp được hỗ trợ trong LINQ to Entity, mặc dù có một vài sự khác biệt trong cách so sánh với LINQ to Object. Tuy nhiên, phương thức tập hợp sử dụng IEqualityComparer không được hỗ trợ vì đối tượng so sánh (comparer) không thể dịch sang nguồn dữ liệu.

Các phương thức sắp xếp (ordering)

Các phương thức sắp xếp giúp sắp xếp các phần tử kết quả theo thứ tự dựa trên một hay nhiều thuộc tính. Các phương thức sắp xếp phổ biến là OrderBy, OrderByDescending, ThenBy, ThenByDescending, và Reverse.

Các phương thức gom nhóm

Gom nhóm là cách đặt dữ liệu thành từng nhóm mà các phần tử trong mỗi nhóm có cùng một thuộc tính chung. Phương thức gom nhóm duy nhất là GroupBy.

Các phương thức tổng hợp (aggregate)

Một hoạt động tổng hợp sẽ tính toán một giá trị đơn lẻ từ một tập các giá trị. Ví dụ, tính nhiệt độ trung bình hàng ngày từ các giá trị đo được trong 1 tháng là một hoạt động tổng hợp. Các phương thức tổng hợp là Aggregate, Average, Count, LongCount, Max, Min, và Sum.

Các phương thức phân trang

Phân trang là cách thức chia nhỏ tập dữ liệu thành một phần tử hoặc nhóm các phần tử. Các phương thức phân trang bao gồm ElementAt, First, FirstOrDefault, Last, LastOrDefault, Single, Skip, Take, và TakeWhile.

Bài viết liệt kê tổng quan các phương thức truy vấn chuẩn thường dùng trong LINQ để truy vấn các thực thể (entity). Để tìm hiểu hay học thêm các toán tử truy vấn chuẩn trong LINQ, bạn có thể theo dõi loạt bài viết: LINQ cơ bản.

Trích dẫn bài viết
  • APA:
    Dammio. (2018). Các toán tử truy vấn chuẩn trong LINQ để truy vấn các thực thể. https://www.dammio.com/2018/05/10/cac-toan-tu-truy-van-chuan-trong-linq-de-truy-van-cac-thuc-the.
  • BibTeX:
    @misc{dammio,
    author = {Dammio},
    title = {Các toán tử truy vấn chuẩn trong LINQ để truy vấn các thực thể},
    year = {2018},
    url = {https://www.dammio.com/2018/05/10/cac-toan-tu-truy-van-chuan-trong-linq-de-truy-van-cac-thuc-the},
    urldate = {2024-12-05}
    }
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x