Mô hình hóa CSDL Northwind dùng LINQ to SQL Trong phần 2 của loạt bài này, tôi đã đi qua các bước để tạo một mô hình các lớp LINQ to SQL bằng cách dùng trình LINQ to SQL có sẵn trong VS 2008. Dưới đây là một hình mà tôi đã tạo dùng CSDL mẫu Northwind: | Truy vấn Cơ sở dữ liệu LINQ to SQL phần 3 Mô hình hóa CSDL Northwind dùng LINQ to SQL Trong phần 2 của loạt bài này tôi đã đi qua các bước để tạo một mô hình các lớp LINQ to SQL bằng cách dùng trình LINQ to SQL có sẵn trong VS 2008. Dưới đây là một hình mà tôi đã tạo dùng CSDL mẫu Northwind Lấy các sản phẩm Một khi đã định nghĩa mô hình dữ liệu như trên chúng ta có thể dễ dàng truy vấn và lấy dữ liệu từ CSDL. LINQ to SQL cho phép bạn làm điều này bằng cách viết các câu truy vấn dùng cú pháp LINQ với lớp NorthwindDataContext mà chúng ta đã tạo dùng trình thiết kế LINQ to SQL designer ở trên. Ví dụ để lấy và duyệt qua một tập các đối tượng Product tôi có thể viết code như dưới đây Trong câu truy vấn trên tôi đã dùng một mệnh đề where trong cú pháp LINQ để chỉ trả về các sản phẩm trong một category cho trước. Tôi hiện đang dùng CategoryID của Product để thực hiện lọc ra các dùng mong muốn. Một trong những điểm hay là tôi có rất nhiều lựa chọn rất nhiều cách để tùy biến câu lệnh và tôi có thể nắm bắt ưu điểm của mối quan hệ giữa các thực thể mà tôi đã tạo khi mô hình hóa các lớp để làm cho câu lệnh phong phú và tự nhiên hơn. Ví dụ tôi có thể sửa lại câu truy vấn để lọc ra các dòng theo CategoryName thay vì CategoryID bằng cách viết câu lệnh LINQ như sau NorthwindDatacontext db new NorthwindDataContextO van products from p in where Beverages select p Chú ý cách tôi dùng thuộc tính Category trên mỗi đối tượng Product để lọc theo CategoryName của Category chứa Product đó. Thuộc tính này được tự động tạo ra bởi LINQ to SQL vì chúng ta đã mô hình hóa các lớp Category và Product như một mối quan hệ một-nhiều. Một ví dụ khác về cách dùng quan hệ trong mô hình dữ liệu bên trong các câu truy vấn chúng ta có thể viết câu lệnh LINQ như dưới đây để lấy về chỉ những Product có 5 hoặc hơn đơn đặt hàng Chú ý cách chúng ta đã dùng tập hợp OrderDetails mà LINQ to SQL đã tạo trên mỗi lớp Product nhờ vào mối quan hệ một-nhiều mà chúng ta đã mô hình hóa