✨Ngôn ngữ truy vấn tích hợp

Ngôn ngữ truy vấn tích hợp

Ngôn ngữ truy vấn tích hợp (tiếng Anh: Language Integrated Query, viết tắt LINQ) là một thành phần của .NET và .NET Framework cung cấp khả năng truy vấn cấp độ ngôn ngữ và cùng các hàm API truy vấn bậc cao trên C# và Visual Basic.

Cú pháp lệnh LINQ

Cú pháp lệnh LINQ có nhiều điểm tương đồng với ngôn ngữ truy vấn SQL nhưng được tích hợp gốc (native) trong ngôn ngữ lập trình. Lệnh truy vấn trên LINQ trên C# có dạng:

var linqExperts = from p in programmers where p.IsNewToLINQ select new LINQExpert(p); Trên ngôn ngữ Visual Basic: Dim countries = From cust In customers Order By cust.Country, cust.City Group By CountryName = cust.Country Into CustomersInCountry = Group, Count() Order By CountryName Nói chung LINQ hỗ trợ hầu hết các Toán tử truy vấn tiêu chuẩn (SQO) như _Select_, _Where_, _Group by_...

Kết nối LINQ to SQL

Trong LINQ to SQL, mô hình dữ liệu của cơ sở dữ liệu quan hệ được ánh xạ tới mô hình đối tượng được và được truy vấn thao tác trên Ngôn ngữ truy vấn tích hợp ngay trong C# hoặc VB.NET. Khi ứng dụng chạy, LINQ to SQL tự động dịch sang ngôn ngữ SQL các truy vấn được tích hợp Ngôn ngữ truy vấn tích hợp và gửi chúng đến cơ sở dữ liệu để thực thi. Khi cơ sở dữ liệu trả về kết quả, LINQ to SQL lại dịch chúng trở lại các đối tượng mà bạn có thể làm việc bằng ngôn ngữ lập trình của riêng mình.

// Kết nối đến CSDL thông qua DataContext DataContext db = new DataContext(@"c:\linqtest\northwnd.mdf");

// Tạo kiểu bảng Customer để phục vụ truy vấn Table Customers = db.GetTable();

// Truy vấn đến bảng dữ liệu Customer để tìm các khách hàng từ London IQueryable custQuery = from cust in Customers where cust.City == "London"  select cust;

Kết nối LINQ to XML

LINQ to XML cung cấp giao diện lập trình XML trong bộ nhớ giúp Truy vấn tích hợp ngôn ngữ trên.NET (LINQ) thao tác trên các dữ liệu dạng XML. LINQ to XML cung cấp khả năng cho phép.NET có thể cập nhật, cấu trúc lại và truy vấn dữ liệu ở dạng Mô hình đối tượng văn bản (DOM).

// Lấy thông tin từ tệp văn bản dạng XML (PurchaseOrder.xml) chứa dữ liệu về đơn hàng đã thanh toán var filename = "PurchaseOrder.xml"; var currentDirectory = Directory.GetCurrentDirectory(); var purchaseOrderFilepath = Path.Combine(currentDirectory, filename);

XElement purchaseOrder = XElement.Load(purchaseOrderFilepath);

IEnumerable partNos = from item in purchaseOrder.Descendants("Item") select (string) item.Attribute("PartNumber");

Ngôn ngữ truy vấn tích hợp song song

Ngôn ngữ truy vấn tích hợp song song (PLINQ) là một triển khai song song của Truy vấn tích hợp ngôn ngữ (LINQ) để tận dụng sức mạnh của lập trình song song (parallel programming). PLINQ triển khai tập hợp đầy đủ các toán tử truy vấn tiêu chuẩn như LINQ ngoài ra còn có các toán tử bổ sung cho các hoạt động song song. PLINQ kết hợp sự đơn giản và dễ đọc của cú pháp LINQ với sức mạnh của lập trình song song.

// Thực hiện truy vấn song song var query = from item in source.AsParallel().WithDegreeOfParallelism(2) where Compute(item) > 42 select item;