LINQ to SQL Tutorial
VB:
e. Gọi một thủ tục
Đoạn mã dưới đây biểu diễn cách lấy các thực thể Product mà không dùng cú pháp của LINQ, mà
gọi đến thủ tục “GetProductsByCategory” chúng ta đã thêm vào trước đây. Nhớ rằng một khi đã lấy
về kết quả, tôi có thể cập nhật/xóa và sau đó gọi db.SubmitChanges() để cập nhật các thay đổi trở lại
CSDL.
C#:
VB:
11
LINQ to SQL Tutorial
f.
Lấy các sản phẩm và phân trang
Đoạn mã dưới đây biểu diễn cách phân trang trên server như một phần của câu truy vấn LINQ. Bằng
cách dùng các toán tử Skip() và Take(), chúng ta sẽ chỉ trả về 10 dòng từ CSDL – bắt đầu từ dòng
200.
C#:
VB:
5.
Tổng kết
LINQ to SQL cung cấp một cách hay, rõ ràng để mô hình hóa lớp dữ liệu trong ứng dụng của bạn.
Một khi đã định nghĩa mô hinh dữ liệu, bạn có thể dễ dàng thực hiện các câu truy vấn cũng như cập
nhật, xóa, sửa dữ liệu một cách hiệu quả.
Hi vọng những hướng dẫn và ví dụ mẫu ở trên đã giúp bạn làm quen với LINQ. Tôi sẽ tiếp tục các
bài viết này để giúp bạn khám phá LINQ to SQL một cách chi tiết hơn.
12
LINQ to SQL Tutorial
Bài 2: Định nghĩa các lớp mô hình dữ liệu
Trong phần một, tôi đã thảo luận về “LINQ to SQL là gì” và cung cấp một cái nhìn cơ bản về những
trường hợp chúng ta có thể sử dụng nó.
Trong bài viết đầu tiên, tôi cũng đã cung cấp các đoạn code mẫu để biểu diễn cách xử lý dữ liệu dùng
LINQ to SQL, bao gồm:
Cách truy vấn dữ liệu
Các cập nhật dữ liệu
Cách chèn và tạo quan hệ các dòng trong một CSDL
Cách xóa các dòng trong một CSDL
Cách gọi một thủ tục
Cách lấy dữ liệu và phân trang trên server
Tôi đã thực hiện tất cả các thao tác dữ liệu đó bằng cách dùng một mô hình dữ liệu LINQ to SQL
giống như dưới đây:
Trong bài này, tôi sẽ đi vào chi tiết cách tạo ra một mô hình dữ liệu LINQ to SQL giống như trên.
LINQ to SQL, cũng như LINQ to SQL, và tất cả các tính năng khác mà tôi đã nói đến trong loạt
bài này sẽ được coi như một phần của .NET 3.5 và Visual Studio “Orcas” (nay là Visual Studio
2008).
Bạn có thể làm theo tất cả các bước dưới đây bằng cách tải về hoặc Visual Studio 2008 hoặc Visual
Web Developer Express. Cả hai đều có thể được cài đặt và dùng đồng thời với Visual Studio 2005.
13
LINQ to SQL Tutorial
1. Tạo ra một mô hình dữ liệu LINQ to SQL
Bạn có thể thêm một mô hình dữ liệu LINQ to SQL và một dự án ASP.NET, Class Library hay
Windows bằng cách dùng tùy chọn “Add New Item” bên trong Visual Studio và chọn “LINQ to
SQL”:
Việc chọn mục “LINQ to SQL” sẽ khởi chạy LINQ to SQL designer, và cho phép bạn mô hình hóa
các lớp mà nó biểu diễn một CSDL quan hệ. Nó cũng sẽ tạo ra một lớp kiểu “DataContext”, trong đó
có các thuộc tính để biểu diễn mỗi bảng mà chúng ta mô hình hóa trong CSDL, cũng như các
phương thức cho mỗi Stored Procedure mà chúng ta mô hình hóa. Như tôi đã mô tả trong phần 1 của
loạt bài này, lớp DataContext là thành phần trung tâm của mô hình, toàn bộ các thao tác truy vấn
hoặc cập nhật dữ liệu đều được thực hiện thông qua lớp này.
Dưới đây là ảnh chụp màn hình của một của sổ thiết kế LINQ to SQL, và cũng là cái mà bạn sẽ thấy
ngay khi tạo ra một mô hình dữ liệu LINQ to SQL:
14
LINQ to SQL Tutorial
2. Các lớp thực thể
LINQ to SQL cho phép bạn mô hình hóa các lớp ánh xạ vào CSDL. Các lớp này thường được là
“Entity Class” (lớp thực thể) và các instance của nó thường được gọi là “Entity” (thực thể). Các lớp
entity ánh xạ vào các bảng bên trong một CSDL. Các thuộc tính của các lớp thông thường ánh xạ
vào các cột trong bảng. Mỗi instance của một lớp thực thể biểu diễn một dòng trong bảng.
Các lớp thực thể trong LINQ to SQL không cần phải kế thừa từ một lớp đặc biệt nào khác, điều đó
cho phép bạn có thể cho phép chúng thừa kế từ bất cứ đối tượng nào bạn muốn. Tất cả các lớp được
tạo ra dùng LINQ to SQL designer đều được định nghĩa như “partial class” – có nghĩa là bạn có thể
viết thêm code để thêm vào các thuộc tính, phương thức và sự kiên cho chúng.
Không giống như chức năng DataSet/TableAdapter có trong VS 2005, khi dùng LINQ to SQL
designer, bạn không cần chỉ ra câu truy vấn SQL được dùng để tạo ra mô hình và lớp truy xuất dữ
liệu.
Thay vào đó, bạn tập trung chủ yếu vào việc định nghĩa các lớp thực thể, cách chúng ánh xạ vào
CSDL, và mối quan hệ giữa chúng. Trình LINQ to SQL cụ thể mà bạn dùng sẽ đảm bảo việc sinh ra
các lệnh SQL thích hợp vào lúc chạy khi bạn tương tác và làm việc với các thực thể dữ liệu. Bạn có
thể dùng cú pháp truy vấn LINQ để chỉ ra cách bạn muốn truy vấn dữ liệu.
3. Tạo các lớp thực thể từ CSDL
Nếu đã có cấu trúc cho CSDL, bạn có thể dùng nó để tạo các lớp thực thể LINQ to SQL một cách
nhanh chóng.
15
LINQ to SQL Tutorial
Các dễ dàng nhất để làm điều này là mở CSDL trong cửa sổ Server Explorer bên trong Visual
Studio, chọn các table và view mà bạn muốn mô hình hóa, và kéo thả chúng lên trên của sổ LINQ to
SQL designer.
Khi bạn thêm 2 bảng (Categories and Products) và 1 view (Invoices) từ CSDL “Northwind” vào cửa
sổ LINQ to SQL designer, bạn sẽ có thêm 3 lớp thực thể được tạo ra một cách tự động:
16
Không có nhận xét nào :
Đăng nhận xét