Mô hình hóa CSDL bằng LINQ Ngôn ngữ mở rộng Extension Language Thao tác truy vấn CSDL với LINQ Hỏi đáp... VB.NET - 5 Phạm Hoàng Hải LINQ hỗ trợ đầy đủ các thao tác trên cơ sở d
Trang 1VB.NET - 1 Phạm Hoàng Hải
.NET FRAMEWORK 3.5
LINQ TO SQL
Trang 2VB.NET - 2 Phạm Hoàng Hải
1 LINQ
LINQ là gì?
Mô hình hóa CSDL bằng LINQ
Ngôn ngữ mở rộng (Extension Language)
Thao tác truy vấn CSDL với
LINQ
Hỏi đáp
Trang 3VB.NET - 3 Phạm Hoàng Hải
LINQ hỗ trợ nhiều dạng dữ liệu khác nhau: Object, XML, SQL, Datasets…
Trang 4VB.NET - 4 Phạm Hoàng Hải
LINQ to SQL
LINQ to XML
LINQ to XML
Objects
<book> <title/> <author/> <year/> <price/>
</book>
XML Relational
Trang 5VB.NET - 5 Phạm Hoàng Hải
LINQ hỗ trợ đầy đủ các thao tác trên cơ sở dữ liệu: Truy vấn,
Thêm / Xóa / Sửa dữ liệu, Thực thi các Stored Procedure
Trang 6VB.NET - 6 Phạm Hoàng Hải
1 LINQ
LINQ là gì?
Mô hình hóa CSDL bằng LINQ
Ngôn ngữ mở rộng (Extension Language)
Thao tác truy vấn CSDL với
LINQ
Hỏi đáp
Trang 7VB.NET - 7 Phạm Hoàng Hải
3 MÔ HÌNH HÓA CSDL BẰNG LINQ
Add – New Item…
Trang 8VB.NET - 8 Phạm Hoàng Hải
3 MÔ HÌNH HÓA CSDL BẰNG LINQ
Chọn Linq to SQL File
Lớp “DataContext” được phát
sinh, chứa các thông tin mô hình hóa và hỗ trợ toàn bộ các thao tác truy vấn CSDL
Trang 9VB.NET - 9 Phạm Hoàng Hải
3 MÔ HÌNH HÓA CSDL BẰNG LINQ
Mô hình hóa các bảng CSDL
bằng các lớp thực thể thông qua công cụ LINQ to SQL Designer
Trang 10VB.NET - 10 Phạm Hoàng Hải
3 MÔ HÌNH HÓA CSDL BẰNG LINQ
Khi thực hiện mô hình hóa LINQ
tự động tạo quan hệ giữa các đối tượng
Ví dụ: Bảng Products-Categories
Trong lớp thực thể Category có
“Products” Và trong lớp thực thể Product có thuộc tính “Category”
Trang 11VB.NET - 11 Phạm Hoàng Hải
3 MÔ HÌNH HÓA CSDL BẰNG LINQ
Thực thi truy vấn đơn giản với LINQ
VD: Lấy sản phẩm có ProductID
là 17
Từ lớp Product có thể truy vấn được Category của product
Trang 12VB.NET - 12 Phạm Hoàng Hải
1 LINQ
LINQ là gì?
Mô hình hóa CSDL bằng LINQ
Ngôn ngữ mở rộng (Extension Language)
Thao tác truy vấn CSDL với
LINQ
Hỏi đáp
Trang 13VB.NET - 13 Phạm Hoàng Hải
4 NGÔN NGỮ MỞ RỘNG
EXTENSION LANGUAGE
Ngôn ngữ mở rộng trong C# 3.0:
Khai báo biến
Khởi tạo đối tượng
Kiểu dữ liệu Anonymous
Biểu thức Lambda
Biểu diễn câu truy vấn SQL
Biểu thức SQL
Trang 14VB.NET - 14 Phạm Hoàng Hải
4 NGÔN NGỮ MỞ RỘNG EXTENSION LANGUAGE
Khai báo biến :
Trang 15VB.NET - 15 Phạm Hoàng Hải
4 NGÔN NGỮ MỞ RỘNG EXTENSION LANGUAGE
Khởi tạo đối tượng :
Trang 16VB.NET - 16 Phạm Hoàng Hải
4 NGÔN NGỮ MỞ RỘNG EXTENSION LANGUAGE
Kiểu dữ liệu Anonymous:
Trang 17VB.NET - 17 Phạm Hoàng Hải
}
Trang 18VB.NET - 18 Phạm Hoàng Hải
4 NGÔN NGỮ MỞ RỘNG EXTENSION LANGUAGE
Biểu diễn câu truy vấn SQL với các Operators
Trang 19VB.NET - 19 Phạm Hoàng Hải
4 NGÔN NGỮ MỞ RỘNG
EXTENSION LANGUAGE
Các câu lệnh truy vấn được viết trong C# sẽ được compile thành các câu truy vấn trong CSDL để
hệ quản trị CSDL thực thi
Trang 20VB.NET - 20 Phạm Hoàng Hải
1 LINQ
LINQ là gì?
Mô hình hóa CSDL bằng LINQ
Ngôn ngữ mở rộng (Extension Language)
Thao tác truy vấn CSDL với LINQ
Hỏi đáp
Trang 21VB.NET - 21 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
SELECT
Truy vấn CSDL với điều kiện
Where
Ví dụ: Lấy ra các sản phẩm có Category là Beverages
Trang 22VB.NET - 22 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
SELECT
Truy vấn lấy một giá trị trong
CSDL với điều kiện Where
Ví dụ: Lấy ra các sản phẩm có ProductName là “Toy 1”
Trang 23VB.NET - 23 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
Trang 24VB.NET - 24 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
SELECT
Truy vấn CSDL có thực hiện
phân trang Skip/Take
Ví dụ: Lấy ra 10 sản phẩm, từ vị trí 200, có Category bắt đầu với
kí tự “C”
Trang 25VB.NET - 25 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
SELECT
Sắp xếp có điều kiện với
orderby
orderedProducts1 = products
OrderBy(p => p.Category)
ThenByDescending(p => p.UnitPrice) ThenBy(p => p.Name);
Trang 26VB.NET - 26 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
SELECT
Gom nhóm với groupby
productsByCategory =
products.GroupBy(p => p.Category);
Trang 27VB.NET - 27 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
Trang 28VB.NET - 28 Phạm Hoàng Hải
TRUY VẤN LẤY DỮ LIỆU
Trang 29VB.NET - 29 Phạm Hoàng Hải
CẬP NHẬT DỮ LIỆU
UPDATE
Thực thi cập nhật dữ liệu trong LINQ SubmitChanges
Trang 30VB.NET - 30 Phạm Hoàng Hải
Trang 31VB.NET - 31 Phạm Hoàng Hải
Trang 32VB.NET - 32 Phạm Hoàng Hải
6 LINQ CÁC DẠNG DỮ LIỆU KHÁC
LINQ to Object: Hỗ trợ viết các
câu truy vấn cho tập các Object
int[] nums = new int[] {0,4,2,6,3,8,3,1};
int result = nums.Sum();
Trang 33VB.NET - 33 Phạm Hoàng Hải
6 LINQ CÁC DẠNG DỮ LIỆU KHÁC
LINQ to XML: Hỗ trợ viết các câu
truy vấn cho dữ liệu file XML
XDocument loaded = XDocument.Load(@"C:\contacts.xml");
var q = from c in loaded.Descendants("contact")
where (int)c.Attribute("contactId") < 4
select (string)c.Element("firstName") + “ “ + (string)c
Element("lastName");
foreach (string name in q)
Console.WriteLine("Customer name = {0}", name);
-
Output: Customer name = Barney Gottshall
Customer name = Armando Valdes
Trang 34VB.NET - 34 Phạm Hoàng Hải
6 HỎI ĐÁP