Ngôn ngữ LINQ - Giới thiệu về LINQ
Giới thiệu về LINQ
LINQ (truy vấn tích hợp ngôn ngữ) là ngôn ngữ truy vấn mạnh mẽ được giới thiệu trong .NET Framework 3.5 & Visual Studio 2008. LINQ có thể được sử dụng với C# hoặc VB.NET để truy vấn các nguồn dữ liệu khác nhau.
Hướng dẫn LINQ toàn tập này sẽ giúp bạn học LINQ bằng các chủ đề từ cơ bản đến nâng cao. Hướng dẫn này được chia thành nhiều chủ đề liên quan, để bạn bắt đầu từ một chủ đề phải được hiểu trước, sau đó dần dần tìm hiểu các tính năng khác của LINQ một cách tuần tự.
Các hướng dẫn LINQ được trình bày khoa học với các giải thích dễ hiểu, các ví dụ thực tế, các mẹo hữu ích, ghi chú thông tin và các điểm cần nhớ.
Đối tượng độc giả
Các hướng dẫn này được thiết kế cho người mới bắt đầu và các chuyên gia muốn tìm hiểu LINQ từng bước.
Điều kiện tiên quyết
Kiến thức cơ bản về .NET Framework3.5 / 4.5, lập trình C#, Visual Studio là bắt buộc.
LINQ là gì?
LINQ (Truy vấn tích hợp ngôn ngữ) là cú pháp truy vấn thống nhất trong C# và VB.NET để truy xuất dữ liệu từ các nguồn và định dạng khác nhau.
Nó được tích hợp trong C# hoặc VB.NET, do đó loại bỏ sự không phù hợp giữa các ngôn ngữ lập trình và cơ sở dữ liệu, cũng như cung cấp một giao diện truy vấn duy nhất cho các loại nguồn dữ liệu khác nhau.
Ví dụ: SQL là ngôn ngữ truy vấn có cấu trúc được sử dụng để lưu và truy xuất dữ liệu từ cơ sở dữ liệu. Theo cùng một cách, LINQ là một cú pháp truy vấn có cấu trúc được xây dựng trong C# và VB.NET để truy xuất dữ liệu từ các loại nguồn dữ liệu khác nhau, chẳng hạn như danh sách, ADO.Net DataSet, XML Docs, web service, MS SQL Server và các cơ sở dữ liệu khác.
Truy vấn LINQ trả về kết quả dưới dạng đối tượng. Nó cho phép bạn sử dụng cách tiếp cận hướng đối tượng trên tập kết quả và không phải lo lắng về việc chuyển đổi các định dạng khác nhau của kết quả thành các đối tượng.
Ví dụ sau đây minh họa một truy vấn LINQ đơn giản trả về tất cả các chuỗi có chứa ký tự 'a' trong một mảng.
// Data source
string[] names = { "Bill", "Steve", "James", "Mohan" };
// LINQ Query
var myLinqQuery = from name in names
where name.Contains('a')
select name;
// Query execution
foreach(var name in myLinqQuery)
{
Console.WriteLine(name);
}
Kết quả khi biên dịch và thực thi chương trình trên:
James
Mohan
Trong ví dụ trên, mảng chuỗi là nguồn dữ liệu. Sau đây là truy vấn LINQ được gán cho biến myLinqQuery
.
from name in names
where name.Contains('a')
select name;
Truy vấn trên sử dụng cú pháp truy vấn của LINQ. Bạn sẽ tìm hiểu thêm về nó trong chương Cú pháp truy vấn LINQ.
Bạn sẽ không nhận được kết quả của truy vấn LINQ cho đến khi bạn thực thi nó. Truy vấn LINQ có thể được thực thi theo nhiều cách, ở đây chúng tôi đã sử dụng vòng lặp foreach
để thực hiện truy vấn được lưu trữ trong biến myLinqQuery
. Vòng lặp foreach
sẽ thực hiện truy vấn trên nguồn dữ liệu và nhận được kết quả và sau đó duyệt qua tập kết quả.
Như vậy, LINQ có thể truy vấn trên nhiều loại nguồn dữ liệu khác nhau. Sau khi viết truy vấn LINQ, nó phải được thực thi để có kết quả.