Skip to main content

Truy vấn tích hợp ngôn ngữ là gì?

Truy vấn tích hợp ngôn ngữ (LINQ) cung cấp khả năng tích hợp liền mạch cú pháp truy vấn khai báo vào các ngôn ngữ bắt buộc, chủ yếu là C# và VB.NET.Sự phát triển của LINQ đã giải quyết các vấn đề mà các nhà phát triển làm việc trong các môi trường hướng đối tượng gặp phải khi thực hiện các truy vấn.Nó được giới thiệu như là một phần của Microsoft .NET Framework Phiên bản 3.5 vào tháng 11 năm 2007 và trong Visual Studio Codename Orcas. Trước khi tạo truy vấn tích hợp ngôn ngữ, ngôn ngữ .NET không có cách gốc để truy vấn cơ sở dữ liệu quan hệ hoặc tài liệu XML.Các nhà phát triển viết bằng các ngôn ngữ này phải nhúng SQL hoặc XQuery tương ứng dưới dạng chuỗi và bản đồ thủ công dẫn đến dữ liệu vào các đối tượng .NET.Các chuỗi truy vấn và ánh xạ được nhúng không thể được xác thực bởi các trình biên dịch .NET, cho phép phát hiện các lỗi tiềm năng trong thời gian chạy.Đối tượng mạng.Thông thường, nhà phát triển sẽ lặp lại toàn bộ bộ sưu tập nguồn, xây dựng các bộ sưu tập kết quả mới dựa trên các tiêu chí tìm kiếm.Nhà phát triển cũng có thể chuyển đổi dữ liệu trong khi xây dựng các bộ sưu tập kết quả.Cách tiếp cận này là cồng kềnh;Một truy vấn được chọn đơn giản được viết bằng C# hoặc VB sẽ yêu cầu ít nhất năm dòng mã, trong khi cùng một truy vấn sẽ yêu cầu một dòng mã trong ngôn ngữ truy vấn.Tạo Linq.LINQ cung cấp một cú pháp truy vấn gợi nhớ đến SQL sẽ được sử dụng nội tuyến với C# hoặc VB, hoàn chỉnh với kiểm tra loại tĩnh.Khi truy vấn các bộ sưu tập .NET, thay vì sử dụng các vòng lặp lồng nhau, các nhà phát triển có thể sử dụng cú pháp LINQ để chọn các mục và chuyển đổi dữ liệu.Trong số các lợi thế khác, điều này dẫn đến ít dòng mã hơn so với cú pháp hoàn toàn hướng đối tượng.Khi truy cập các nguồn dữ liệu bên ngoài, LINQ và các thành phần hỗ trợ sẽ loại bỏ nhu cầu về các ngôn ngữ truy vấn được nhúng và ánh xạ dữ liệu trong chính ngôn ngữ .NET.Để thực hiện ánh xạ dữ liệu, LINQ phụ thuộc vào các thành phần được gọi là nhà cung cấp LINQ.Linq-to-expects là nhà cung cấp chứng khoán cho phép LINQ truy cập vào bộ sưu tập .NET.Tương tự, có các nhà cung cấp truy cập cơ sở dữ liệu quan hệ và tài liệu XML.Hầu hết các nhà cung cấp này là các thành phần của bên thứ ba không bao gồm trong khung .NET.Bất kể nhà cung cấp được sử dụng, tất cả các truy vấn đều sử dụng cùng một cú pháp LINQ.

Giữa cú pháp truy vấn tích hợp ngôn ngữ và các nhà cung cấp là một thư viện các toán tử truy vấn được thêm vào khung .NET như một phần của các cơ sở LINQ.Các toán tử này thực hiện các tác vụ như lọc, đặt hàng, thiết lập các hoạt động lý thuyết và tổng hợp.Vì các toán tử này là một phần của khung .NET, chúng cũng có thể được sử dụng mà không cần LINQ nếu nhà phát triển chọn.