VB.NET - 1
CNPM
Khoa CNTT
Phạm Hoàng Hải
.NET FRAMEWORK 3.5
LINQ TO SQL
VB.NET - 2
CNPM
Khoa CNTT
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
VB.NET - 3
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. LINQ là gì?
LINQ là tập hợp ngôn ngữ và
các hàm API mở rộng, hỗ trợ
thực hiện truy vấn SQL trực tiếp
bằng ngôn ngữ lập trình trong
.NET
LINQ hỗ trợ nhiều dạng dữ liệu
khác nhau: Object, XML, SQL,
Datasets…
VB.NET - 4
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. LINQ là gì?
C# 3.0 C# 3.0
Visual Basic
9.0
Visual Basic
9.0
Others Others
.NET Language Integrated Query
LINQ to
Objects
LINQ to
Objects
LINQ to
SQL
LINQ to
SQL
LINQ to
XML
LINQ to
XML
Objects
<book>
<title/>
<author/>
<year/>
<price/>
</book>
XML Relational
VB.NET - 5
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. LINQ to SQL
LINQ to SQL cho phép mô hình
hóa một CSDL bằng các lớp
trong .NET, và qua đó, thực hiện
các câu truy vấn CSDL trực tiếp
bằng ngôn ngữ lập trình.
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
VB.NET - 6
CNPM
Khoa CNTT
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
VB.NET - 7
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH HÓA
CSDL BẰNG LINQ
Add – New Item…
VB.NET - 8
CNPM
Khoa CNTT
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.
VB.NET - 9
CNPM
Khoa CNTT
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
VB.NET - 10
CNPM
Khoa CNTT
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”
VB.NET - 11
CNPM
Khoa CNTT
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.
VB.NET - 12
CNPM
Khoa CNTT
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
VB.NET - 13
CNPM
Khoa CNTT
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
VB.NET - 14
CNPM
Khoa CNTT
Phạm Hoàng Hải
4. NGÔN NGỮ MỞ RỘNG
EXTENSION LANGUAGE
Khai báo biến :
VB.NET - 15
CNPM
Khoa CNTT
Phạm Hoàng Hải
4. NGÔN NGỮ MỞ RỘNG
EXTENSION LANGUAGE
Khởi tạo đối tượng :
VB.NET - 16
CNPM
Khoa CNTT
Phạm Hoàng Hải
4. NGÔN NGỮ MỞ RỘNG
EXTENSION LANGUAGE
Kiểu dữ liệu Anonymous:
VB.NET - 17
CNPM
Khoa CNTT
Phạm Hoàng Hải
4. NGÔN NGỮ MỞ RỘNG
EXTENSION LANGUAGE
Biểu thức Lambda
Định nghĩa nhanh các hàm.
Cú pháp:
( argument-list ) => { expressions }
Ví dụ:
Thường được sử dụng trong
Delegate
s => s.ToUpper();
string Func(string s)
{
return s.ToUpper();
}
VB.NET - 18
CNPM
Khoa CNTT
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
Select
Where
SelectMany
Sum / Min / Max / Average
OrderBy
GroupBy
Count
Ví dụ:
VB.NET - 19
CNPM
Khoa CNTT
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.
VB.NET - 20
CNPM
Khoa CNTT
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
VB.NET - 21
CNPM
Khoa CNTT
Phạm Hoàng Hải
5. THAO TÁC TRUY VẤN CSDL
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
VB.NET - 22
CNPM
Khoa CNTT
Phạm Hoàng Hải
5. THAO TÁC TRUY VẤN CSDL
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”
VB.NET - 23
CNPM
Khoa CNTT
Phạm Hoàng Hải
5. THAO TÁC TRUY VẤN CSDL
TRUY VẤN LẤY DỮ LIỆU
SELECT
Truy vấn lấy ra một số thuộc tính
Select.
Ví dụ: Lấy ra ProductID và
ProductName của các sản phẩm
có Category là Beverages
VB.NET - 24
CNPM
Khoa CNTT
Phạm Hoàng Hải
5. THAO TÁC TRUY VẤN CSDL
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”
VB.NET - 25
CNPM
Khoa CNTT
Phạm Hoàng Hải
5. THAO TÁC TRUY VẤN CSDL
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);