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

Cập nhật ngày: 25/04/2024 - Đã có 1295 lượt xem bài viết này!
LinQ – Giới Thiệu Và Cách Sử Dụng
Khi viết bất kì một phầm mềm nào cũng đều sử dụng đến database và lúc đó chúng ta thường nghĩ ngay tới vấn đề sử dụng những câu lệnh truy vấn để truy xuất dữ liệu trong database. Những câu lệnh đôi khi rất dài và phức tạp, chưa kế tới việc ta phải xây dựng phần mềm theo mô hình MVC để nâng cao hiệu suất quản lí. Để rút ngắn thời gian cho việc đó tôi sử dụng LinQ to SQL được cung cấp trong .NET Framework.

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

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 (trong bài này tôi chỉ hướng dẫn với C#). 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 của bạn 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ừ đó ta có thể truy xuất database thông qua những class đó.

LinQ to SQL khá 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ì nó 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. Việc đó ru ngắn đáng kể thời gian cho lập trình viên và cũng dễ dàng cho người sử dụng cài đặt.

Cài đặt và sử dụng.

Cài đặt

B1. Đầu tiên ta tạo một database có tên Member, trong database này gồm có 2 entity member và article.

B2. Kế tiếp ta tạo một project C# -> vào View chọn SQL Server Object Explorer

 

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


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

 

Như vậy ta đã 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.

Sử dụng

Tôi sẽ hướng dẫn một số cú pháp LinQ cơ bản, trước tiên ta 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.

Selecting

 
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ôi 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.

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

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

Trong trường hợp trên ta 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 ta 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.

Inserting

 
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 ta dùng để insert một dữ liệu vào database, trong trường hợp này tôi xem nó như một đối tượng. Trước tiên ta 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 ra 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 ta thêm dòng code db.SubmitChanges(); để đồng bộ tất cả các dữ liệu của project và SQL Server.

Updating

 
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.

Deleting

 
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ư update và insert sau khi dòng code db.members.DeleteOnSubmit(mem); được thực thi thì ta mới chỉ xóa được trên đối tượng trên DBMemberDataContext vì vậy ta dùng db.SubmitChanges(); để cập nhật lại dữ liệu trên SQL Server

 

 

Bạn đang muốn tìm kiếm 1 công việc với mức thu nhập cao.
✅ Hoặc là bạn đang muốn chuyển đổi công việc mà chưa biết theo học ngành nghề gì cho tốt.
✅ Giới thiệu với bạn Chương trình đào tạo nhân sự dài hạn trong 12 tháng với những điều đặc biệt mà chỉ có tại IMIC và đây cũng chính là sự lựa chọn phù hợp nhất dành cho bạn:
👉 Thứ nhất: Học viên được đào tạo bài bản kỹ năng, kiến thức chuyên môn lý thuyết, thực hành, thực chiến nhiều dự án và chia sẻ những kinh nghiệm thực tế từ Chuyên gia có nhiều năm kinh nghiệm dự án cũng như tâm huyết truyền nghề.
👉 Thứ hai: Được ký hợp đồng cam kết chất lượng đào tạo cũng như mức lương sau tốt nghiệp và đi làm tại các đối tác tuyển dụng của IMIC. Trả lại học phí nếu không đúng những gì đã ký kết.
👉 Thứ ba: Cam kết hỗ trợ giới thiệu công việc sang đối tác tuyển dụng trong vòng 10 năm liên tục.
👉 Thứ tư: Được hỗ trợ tài chính với mức lãi suất 0 đồng qua ngân hàng VIB Bank.
👉  Có 4 Chương trình đào tạo nhân sự dài hạn dành cho bạn lựa chọn theo học. Gồm có:
1)  Data Scientist full-stack
2)  Embedded System & IoT development full-stack
3)  Game development full-stack
4)  Web development full-stack 
✅ Cảm ơn bạn đã dành thời gian lắng nghe những chia sẻ của mình. Và tuyệt vời hơn nữa nếu IMIC được góp phần vào sự thành công của bạn. 
✅ Hãy liên hệ ngay với Phòng tư vấn tuyển sinh để được hỗ trợ về thủ tục nhập học.
✅ Chúc bạn luôn có nhiều sức khỏe và thành công!

 

Tham khảo các khóa đào tạo nhân sự qua danh mục