Search…

LinQ – Giới Thiệu và Cách Sử Dụng

23/09/20204 min read
Giới thiệu LinQ to SQL, hướng dẫn cài đặt và sử dụng LinQ to SQL.

LinQ to SQL là gì?

LinQ có tên gọi là Language Integrated Query, một thư viện cung cấp cho ngôn ngữ lập trình C# và Visual Basic. Thư viện này cung cấp khả năng truy vấn database ngay trên ngôn ngữ lập trình. Khi sử dụng, LinQ sẽ mô phỏng lại cơ sở dữ liệu và lưu trong trương trình, sau đó mỗi entity sẽ được xây dựng thành mỗi class như mô hình MVC, từ đó có thể truy xuất database thông qua những class đó.

LinQ to SQL phù hợp với những dự án phần mềm như quản lý bán hàng, quản lý của hàng, nhân viên vì cung cấp khả năng tạo một database ngay trong SQL Server thông qua mô hình database mà LinQ to SQL được người lập trình cung cấp trong quá trình xây dựng sản phẩm. Rút ngắn đáng kể thời gian cho lập trình viên và dễ dàng cho người sử dụng cài đặt.

Cài đặt 

Bước 1. Tạo một database có tên Member, trong database này gồm có 2 entity member và article.

 LinQ to SQL

Bước 2. Tạo một project C# → vào View chọn SQL Server Object Explorer

LinQ to SQL

Bước 3. Chọn Add SQL Server và connect vào SQL Server trên máy, kết quả được một list các database.

LinQ to SQL
LinQ to SQL

Bước 4. Chọn Add → New Item → chọn LINQ to SQL Classes và đặt lại tên (trong ví dụ này đặt tên cho file là DBMember.dbml), một file có đuôi dbml được tạo ra. Chọn tất cả các table trong database muốn sử dụng kéo vào trong file dbml này. Kết quả như sau.

LinQ to SQL

Tạo xong LinQ to SQL, các class có cùng tên với mỗi entity cũng đã được tạo ra.

Các thao tác sử dụng LinQ to SQL

Khởi tạo class DBMemberDataContext, mọi việc truy xuất cơ sở dữ liệu đều thông qua class này.

Select

DBMemberDataContext db = new DBMemberDataContext(); 

var name = from table in db.members
           where table.idMember == 0
           select table.Name;

foreach(var a in name)
{
     Console.WriteLine(a);
}

Tạo một một biến tên table và biến này chứa dựng tất cả dữ liệu có trong table member.

Điều kiện là tìm tất cả những những member nào có idMember bằng 0, có thể lấy theo điều kiện khác tùy loại điều kiện có số lượng kết quả trả về khác nhau. Và cuối cùng là chọn field muốn trả về.

Vì kết quả trả về là mảng nên dùng foreach để lấy tất cả dữ liệu trong đó.

Trong trường hợp trên chỉ có thể lấy được dữ liệu duy nhất đó là field name.

DBMemberDataContext db = new DBMemberDataContext(); // khởi tạo 
var name = from table in db.members
           where table.idMember == 0
           select table;

foreach(var a in name)
{
    Console.WriteLine(a.Name);
    Console.WriteLine(a.Address);
}

Thay vì chỉ lấy được một field có thể lấy toàn bộ dữ liệu trong table thông qua điều kiện cho trước và sau đó truy xuất các field mong muốn.

Insert

DBMemberDataContext db = new DBMemberDataContext();
member mem = new member();

mem.idMember = 1;
mem.Name = "stdio";
mem.Age = 22;
mem.Address = "456 xyz";
db.members.InsertOnSubmit(mem);

db.SubmitChanges();

Đoạn code trên dùng để insert một dữ liệu vào database, trong trường hợp này xem nó như một đối tượng.

Trước tiên tạo ra một đối tượng member và nhập dữ liệu vào các thuộc tính của nó.

Tiếp theo sử dụng db.members.InsertOnSubmit(mem); để thêm đối tượng này vào nhưng đối tượng này hiện tại chỉ được thêm tạm thời vào DBMemberDataContext nhưng chưa được cập nhật vào databate của SQL Server.

Vì vậy thêm dòng code db.SubmitChanges(); để đồng bộ tất cả các dữ liệu của project và SQL Server.

Update

DBMemberDataContext db = new DBMemberDataContext();
var members = from table in db.members
              where table.idMember == 0
              select table;

foreach (var mem in members)
{
    mem.Address = "Tân Bình";
}
db.SubmitChanges();

Đoạn code này sẽ truy vấn đến database để tìm những member nào có idMember bằng 0 và sau đó thay đổi giá trị trong field Address, cuối cùng là đồng bộ lại dữ liệu.

Delete

DBMemberDataContext db = new DBMemberDataContext();
var members = from table in db.members
              where table.idMember == 0
              select table;

foreach (var mem in members)
{
    db.members.DeleteOnSubmit(mem);
}
db.SubmitChanges();

Ví dụ này thực hiện việc delete một đối tượng có trong members. Cũng như updateinsert sau khi dòng code db.members.DeleteOnSubmit(mem); được thực thi thì mới chỉ xóa được trên đối tượng trên DBMemberDataContext.

Vì vậy dùng db.SubmitChanges(); để cập nhật lại dữ liệu trên SQL Server.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024