Danh mục tài liệu

Giáo trình LinQ

Số trang: 6      Loại file: pdf      Dung lượng: 345.07 KB      Lượt xem: 20      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

LINQ to SQL là gì? LINQ to SQL là một phiên bản hiện thực hóa của O/RM (object relational mapping) có bên trong .NET Framework bản “Orcas” (nay là .NET 3.5), nó cho phép bạn mô hình hóa một cơ sở dữ liệu dùng các lớp .NET. Sau đó bạn có thể truy vấn cơ sở dữ liệu (CSDL) dùng LINQ, cũng như cập nhật/thêm/xóa dữ liệu từ đó. LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure (SP). Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ...
Nội dung trích xuất từ tài liệu:
Giáo trình LinQSử dụng LINQ to SQL (LINQ to SQL phần 1)LINQ to SQL là gì?LINQ to SQL là một phiên bản hiện thực hóa của O/RM (object relational mapping) cóbên trong .NET Framework bản “Orcas” (nay là .NET 3.5), nó cho phép bạn mô hình hóamột cơ sở dữ liệu dùng các lớp .NET. Sau đó bạn có thể truy vấn cơ sở dữ liệu (CSDL)dùng LINQ, cũng như cập nhật/thêm/xóa dữ liệu từ đó.LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure (SP). Nó cũngcung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quytắc vào trong mô hình dữ liệu của bạn.Mô hình hóa CSDL dùng LINQ to SQL:Visual Studio “Orcas” đã tích hợp thêm một trình thiết kế LINQ to SQL như một công cụdễ dàng cho việc mô hình hóa một cách trực quan các CSDL dùng LINQ to SQL. Bàiviết sau sẽ đi sâu hơn vào cách dùng trình thiết kế này (bạn cũng có thể xem đoạn videonày để xem cách tôi tạo một mô hình LINQ to SQL).Bằng cách dùng trình thiết kế LINQ to SQL, tôi có thể dễ dàng tạo một mô hình choCSDL mẫu “Northwind” giống như dưới đây:Mô hình LINQ to SQL ở trên định nghĩa bốn lớp thực thể: Product, Category, Order vàOrderDetail. Các thuộc tính của mỗi lớp ánh xạ vào các cột của bảng tương ứng trongCSDL. Mỗi instance của một lớp biểu diễn một dòng trong bảng dữ liệu .Các mũi tên giữa bốn lớp thực thể trên biểu diễn quan hệ giữa các thực thể khác nhau,chúng được tạo ra dựa trên các mối quan hệ primary-key/foreign-key trong CSDL.Hướng của mũi tên chỉ ra mối quan hệ là một – một hay một – nhiều. Các thuộc tínhtương ứng sẽ được thêm vào các lớp thực thể trong các trường hợp này. Lấy ví dụ, lớpCategory ở trên có một mối quan hệ một nhiều với lớp Product, điều này có nghĩa nó sẽcó một thuộc tính “Categories” là một tập hợp các đối tượng Product trong Category này.Lớp Product cũng sẽ có một thuộc tính “Category” chỉ đến đối tượng ”Category” chứaProduct này bên trong.Bảng các phương thức bên tay phải bên trong trình thiết kế LINQ to SQL ở trên chứamột danh sách các SP để tương tác với mô hình dữ liệu của chúng ta. Trong ví dụ trên tôiđã thêm một thủ tục có tên “GetProductsByCategory”. Nó nhận vào một categoryID vàtrả về một chuỗi các Product. Chúng ta sẽ xem bằng cách nào có thể gọi được thủ tục nàytrong một đoạn code bên dưới.Tìm hiểu lớp DataContextKhi bạn bấm nút “Save” bên trong màn hình thiết kế LINQ to SQL, Visual Studio sẽ lưucác lớp .NET biểu diễn các thực thể và quan hệ bên trong CSDL mà chúng ta vừa môhình hóa. Cứ mỗi một file LINQ to SQL chúng ta thêm vào solution, một lớpDataContext sẽ được tạo ra, nó sẽ được dùng khi cần truy vấn hay cập nhật lại các thayđổi. Lớp DataContext được tạo sẽ có các thuộc tính để biểu diễn mối bảng được mô hìnhhóa từ CSDL, cũng như các phương thức cho mỗi SP mà chúng ta đã thêm vào.Lấy ví dụ, dưới đây là lớp NorthwindDataContext được sinh ra dựa trên mô hình chúngta tạo ra ở trên:Các ví dụ LINQ to SQLMột khi đã mô hình hóa CSDL dùng trình thiết kế LINQ to SQL, chúng ta có thể dễ dàngviết các đoạn lệnh để làm việc với nó. Dưới đây là một vài ví dụ về các thao tác chungkhi xử lý dữ liệu:1) Lấy các Product từ CSDLĐoạn lệnh dưới đây dùng cú pháp LINQ để lấy về một tập IEnumerable các đối tượngProduct. Các sản phẩm được lấy ra phải thuộc phân loại “Beverages”:2) Cập nhật một sản phẩm trong CSDLĐoạn lệnh dưới đây cho thấy cách lấy một sản phẩm, cập nhật lại giá tiền và lưu lạiCSDL.3) Chèn thêm một phân loại mới và hai sản phẩm vào CSDLĐoạn mã dưới đây biểu diễn cách tạo một phân loại mới, và tạo hai sản phẩm mới và đưachúng vào trong phân loại đã tạo. Cả ba sau đó sẽ được đưa vào cơ sở dữ liệu.Chú ý rằng tôi không cần phải tự quản lý các mối quan hệ primary key/foreign key, thayvào đó, tôi chỉ đơn giản thêm các đối tượng Product vào tập hợp Products của đối tượngcategory, và rồi thêm đối tượng category vào tập hợp Categories của DataContext, LINQto SQL sẽ biết cách thiết lập các giá trị primary key/foreign key một cách thích hợp.(Add đã được thay đổi bằng InsertOnSubmit trong phiên bản hiện tại)4) Xóa các sản phẩmĐoạn mã sau sẽ biểu diễn cách xóa tất cả các sản phẩm Toy khỏi CSDL:(RemoveAll đã được thay đổi bằng DeleteAllOnSubmit trong phiên bản hiện tại)5) 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ủaLINQ, 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ọidb.SubmitChanges() để cập nhật các thay đổi trở lại CSDL.6) Lấy các sản phẩm và phân t rangĐ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ấnLINQ. 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.Tổng kếtLINQ 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ụngcủ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 ...