Tìm hiểu ASP.NET MVC và xây dựng siêu thị trực tuyến VỚI ASP.NET MVC - Pdf 32

ĐẠI HỌC THĂNG LONG
BỘ MÔN TIN HỌC
CHUYÊN ĐỀ TỐT NGHIỆP
TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG
WEB SIÊU THỊ TRỰC TUYẾN
VỚI ASP.NET MVC

SINH VIÊN :
ĐẶNG TIẾN LỘC – A07138
GIÁO VIÊN HƯỚNG DẪN :
Ths. ĐOÀN QUANG MINH
HÀ NỘI 5/ 2010
BẢNG KÝ HIỆU VIẾT TẮT
MVC Model View Controller Mô hình lập trình ba lớp Model, View, Controller
được sử dụng trong nhiều framework lập trình
web trong đó có ASP.NET MVC, ZEND ,
J2EE…
API Application
Programming Interface
Giao diện lập trình được sử dụng bởi một ứng
dụng qua đó cho phép nó tương tác với ứng
dụng khác
ACK ACKnowledgement Thừa nhận một trường xác thực trong gói tin
http.
URL Uniform Resource
Locator
Địa chỉ website
LINQ .NET Language
Intergrated Query
Ngôn ngữ truy vấn tích hợp với .NET
CDN Content Delivery

hiệu năng của hệ thống..................................................................................................10
1.4.5.Tầng trình diễn (UI hay Views) ..........................................................................10
CHƯƠNG 2: TÌM HIỂU ASP.NET MVC VÀ LINQ.........................................................12
1.5.ASP.NET MVC là gì?.................................................................................................12
1.5.1.Mô hình MVC cơ bản..........................................................................................12
1.5.2.Một vài đặc tính của ASP.NET MVC.................................................................13
1.6.Sự khác biệt so với Web Form....................................................................................13
1.7.Quá trình thực thi một ứng dụng nền web ASP.NET MVC.......................................15
1.8.Linq to SQL là gì?.......................................................................................................16
1.9.Mô hình hóa CSDL dùng Linq to SQL.......................................................................17
1.10.Tìm hiểu lớp DataContext.........................................................................................18
1.11.Các ví dụ Linq to SQL..............................................................................................19
1.12.Tổng kết.....................................................................................................................21
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ ỨNG DỤNG ........................................................23
1.13.Thiết kế hệ thống ......................................................................................................23
1.13.1.Các module của hệ thống ..................................................................................23
1.13.2.Mối quan hệ giữa các module ...........................................................................24
1.14.Đặc tả sơ lược các module .......................................................................................24
1.14.1.Module hồ sơ và thành viên...............................................................................24
1.14.2.Module lấy ý kiến khách hàng...........................................................................24
1.14.3.Module thương mại............................................................................................24
1.14.4.Module gửi thư...................................................................................................24
1.14.5.Module diễn đàn.................................................................................................24
1.14.6.Module tìm kiếm siêu thị...................................................................................25
1.14.7.Module bài báo, tin tức, và blog........................................................................25
1.14.8.Module quốc tế hóa............................................................................................25
1.14.9.Module kiểm thử................................................................................................25
1.15.Tổng quan về module................................................................................................26
1.16.Sơ đồ chức năng........................................................................................................27
1.17.Các bảng DL của module..........................................................................................27

1.41.View...........................................................................................................................53
1.42.Cấu hình định tuyến..................................................................................................54
1.43.Tổng quan về module................................................................................................55
1.44.Sơ đồ chức năng........................................................................................................55
1.45.Các bảng dữ liệu .......................................................................................................56
1.46.Thiết kế lớp cấu hình cho module.............................................................................57
1.47.Model.........................................................................................................................57
1.48.Controller...................................................................................................................58
1.49.View...........................................................................................................................59
1.50.Sử dụng javascript.....................................................................................................59
1.51.Cấu hình định tuyến..................................................................................................64
1.52.Tổng quan về module................................................................................................66
1.53.Sơ đồ chức năng........................................................................................................66
1.54.Các bảng dữ liệu........................................................................................................67
1.55.Xây dựng lớp ForumsElement cho thiết lập cấu hình module.................................67
1.56.Model.........................................................................................................................67
1.57.Controller...................................................................................................................68
1.58.View...........................................................................................................................69
1.59.Sử dụng javascript.....................................................................................................70
1.60.Cấu hình định tuyến..................................................................................................74
1.61.Cấu hình trong tệp web.config..................................................................................75
1.62.Tổng quan về module................................................................................................76
1.63.Sơ đồ chức năng........................................................................................................76
1.64.Các bảng dữ liệu........................................................................................................77
1.65.Xây dựng lớp ArticleElement cho thiết lập cấu hình của module...........................77
1.66.Model.........................................................................................................................78
1.67.Controller...................................................................................................................79
1.68.View...........................................................................................................................80
1.69.Sử dụng javascript.....................................................................................................81
1.70.Cấu hình định tuyến..................................................................................................87

KẾT LUẬN.............................................................................................................................114
TÀI LIỆU THAM KHẢO....................................................................................................115
DANH MỤC HÌNH ẢNH.....................................................................................................116
GIỚI THIỆU CHUNG
Trong chuyên đề tốt nghiệp này em thực hiện việc tìm hiểu ASP.NET MVC , mô
hình thương mại điện tử trực tuyến của các chuỗi siêu thị lớn trên thế giới như
http://www.bestbuy.com , http://www.walmart.com/ qua đó xây dựng hệ thống
thương mại trực tuyến trên nền tảng gồm các module:
• Module thành viên và hồ sơ.
- Đăng kí tài khoản
- Đăng nhập, đăng xuất
- Quản lí hồ sơ
- Quản lí vai trò người dùng, xóa , tạo vai trò
- Quản lí người dùng, tìm kiếm người dùng theo tên – theo email , xóa người
dùng, sửa đổi thông tin người dùng
• Moudle thương mại
- Duyệt toàn bộ các gian hàng trong siêu thị
- Xem một gian hàng với danh sách các mặt hàng có trong gian hàng
- Xem chi tiết một sản phẩm trong gian hàng , đưa vào giỏ hàng.
- Quản lí các gian hàng, tạo một gian hàng
- Quản lí các sản phẩm (chỉnh sửa thông tin sản phẩm, xóa sản phẩm), tạo
sản phẩm
- Quản lí các chọn lựa cách thức giao hàng (xóa, thêm cách thức giao hàng)
- Quản lí các đơn đặt hàng (xem chi tiết đơn hàng)
• Mudule tin tức – bài báo - blog
- Xem toàn bộ bài báo
- Xem theo đầu mục, chọn rss
- Xem chi tiết , viết lời bình và đánh giá bài báo
- Quản lí các đầu mục, tạo đầu mục
- Quản lí các bài báo (chỉnh sửa, xóa), tạo bài báo mới

1.1. Tổng quan về ASP.NET MVC
Không phải tự nhiên mà rất nhiều web programming framework phổ biến nhất hiện
nay kế thừa các nguyên tắc của MVC như Django, Ruby on Rails, CakePHP,
Struts, … Sự thành công của việc kế thừa kiểu mẫu lập trình này cuối cùng cũng
đã khiến Microsoft quyết định đưa các nghuyên tắc đó vào sử dụng trong .NET
Framework và rồi hình thành nên ASP.NET MVC đầu năm 2007 phiên bản 1.0 .
Kiểu mẫu lập trình các ứng dụng nền tảng Web này tuy rằng không phải là kiểu
mẫu lập trình tốt nhất hiện nay xong nó có những ưu điểm nhất định và được sử
dụng khá phổ biến và đang tiếp tục được hỗ trợ phát triển của Micorosoft. Chính vì
những lí do này mà nó đáng được tìm hiểu để từ đó sử dụng một cách hiệu quả.
1.2. Tổng quan về ứng dụng thương mại siêu thị trực tuyến
Việc mua bán kinh doanh hiện nay đang ngày càng trở nên dễ dàng hơn với sự hỗ
trợ của CNTT hiện tại có một số lượng rất lớn các website thương mại đã được
xây dựng và sử dụng . Việc này giúp đa dạng hóa các phương thức bán hàng và
vì vậy hàng hóa được tiêu thụ dễ dàng hơn. Có rất nhiều ích lợi từ việc kinh doanh
trực tuyến có thể thấy được như:
Đối với khách hàng:
• Mua hàng ở bất kể đâu miễn là họ có máy tính kết nối mạng.
• Nhanh chóng tìm kiếm được mặt hàng cần mua chỉ qua vài click chuột.
• Không phải đối mặt với nhân viên bán hàng.
• …
Đối với doanh nghiệp:
• Có thêm được một kênh quảng bá sản phẩm hiệu quả mà chi phí thấp.
• Nắm bắt được thông tin phong phú về thị trường và đối tác.
• Thiết lập được mối quan hệ tốt với khách hàng và đối tác.
• Đa dạng hóa các kênh bán hàng của doanh nghiệp.
• ….
Hệ thống siêu thị trực tuyến là một ví dụ điển hình về thương mại điện tử nó có
đầy đủ các module mà một hệ thống thương mại điện tử cần có. Trong chuyên đề
tốt nghiệp của mình em sẽ xây dựng hệ thống bán hàng trực tuyến theo mô hình

ứng với một sự kiện nhấn chuột. Khi sử dụng những control như thế ta luôn
cần có các tệp mã lệnh để xử lí logic đằng sau (code behind file) các view.
Chúng ta có thể tự tạo trọn vẹn một ứng dụng có tính module tuy nhiên điều
này dẫn tới việc ta phải tự xây dựng framework cho ứng dụng của mình.
Với việc ra đời của framework asp.net mvc thì mọi thứ đã thay đổi hẳn không
còn các tệp mã lệnh xử lí logic đằng sau các view giúp tách biệt hoàn toàn
giữa giao diện với logic nghiệp vụ của ứng dụng. Với asp.net mvc framework
4
TIÊU ĐỀ CHƯƠNG 2
ta có thể dễ dàng, nhanh chóng phát triển kiến trúc ứng dụng theo hướng
phân tầng (n-tier web application)
1.4.1. Thiết kế kiến trúc phân tầng
Với ứng dụng siêu thị trực tuyến ta sẽ chia thành các tầng như sau:
Tầng lưu trữ dữ liệu: Nơi lưu trữ CSDL. CSDL của ứng dụng là CSDL quan hệ
Tầng truy cập CSDL (Data Access Layer – DAL): Mã lệnh để lấy dữ liệu , xử lí dữ
liệu thô được lưu trong tầng lưu trữ DL. Nhiệm vụ của tầng này là đưa ra các truy
xuất CSDL theo logic nghiệp vụ và có tính trực quan hơn cho ứng dụng. Che dấu
các chi tiết thâm nhập CSDL ở mức thấp tăng tính an toàn cho CSDL của hệ
thống.
Tầng nghiệp vụ (Business Logic Layer – BLL): Mã lệnh ở tầng này sẽ thực hiện
các nguyên tắc nghiệp vụ , tạo các đối tượng cụ thể thuộc miền nghiệp vụ nhằm
thỏa mãn các yêu cầu của ứng dụng.
Tầng Logic ứng dụng (Application Logic Layer): Mã lệnh thuộc tầng này sẽ xử lí
các tương tác giữa tầng trình diễn (Presentation Layer) với tầng logic nghiệp vụ
Tầng trình diễn (Presentation Layer – PL) : Là các đoạn mã lệnh tạo nên những gì
mà người dùng thấy ở trên trình duyệt – nó có thể là các dữ liệu đã được định
dạng, thực đơn duyệt hệ thống, …
Hình 1.1 – Kiến trúc ứng dụng
1.4.2. Lựa chọn lưu trữ dữ liệu và thiết kế tầng truy xuất dữ liệu
Ở ứng dụng này ta lựa chọn lưu trữ CSDL với SQL server 2008. SQL server 2008

thư mục models.
Để xử lí việc hỗ trợ lưu trữ dữ liệu linh động với các Database Server khác nhau ta
sẽ sử dụng kiểu mẫu thiết kế Provider Model cụ thể là thay vì việc viết trực tiếp các
lớp truy cập CSDL (DAL classes) đầu tiên ta sẽ viết lớp trừu tượng (abstract class)
và giao diện công khai của các lớp đó (public interface) và cả các phương thức hỗ
trợ nếu cần. Mã lệnh thực sự dùng truy vấn CSDL sẽ nằm ở lớp kế thừa trực tiếp
từ lớp trừu tượng và lớp này sẽ đưa ra các mã lệnh cụ thể cho các phương thức
trong interface của lớp trừu tượng. Lớp trừu tượng được gọi là Provider và đây là
lí do vì sao Micorsoft gọi kiểu mẫu thiết kế này là Provider Model .
Rõ ràng khi thay đổi Database Server ta chỉ việc thay đổi CSDL , thay đổi các lớp
thứ 2 này là xong . Hơn thế nữa với lớp trừu tượng ta biết rõ được phải xây dựng
lớp thứ 2 như thế nào và chúng ta không hề phải thay đổi các module khác ngoại
trừ module DAL. Trong trường hợp buộc phải thêm các lớp provider mới thì ta có
thể biến các lớp provider cũ thành virtual để từ đó cho phép các lớp provider mới
có các hàm quá tải (override) các hàm của các provider cũ.
6
TIÊU ĐỀ CHƯƠNG 2
Hình dưới đây minh họa mối quan hệ giữa các tầng giao diện, logic nghiệp vụ, truy
cập CSDL và lưu trữ CSDL
Hình 1.2 – Mối quan hệ giữa các tầng giao diện, logic nghiệp vụ, truy cập
CSDL và lưu trữ CSDL
Sử dụng LINQ ở tầng truy cập CSDL (DAL)
Với .NET Framework 3.5 chúng ta được cung cấp một tính năng mới là LINQ
(Language Intergrated Query) . LINQ được thiết kế để cung cấp cách thực hiện
truy vấn trên bất kể kiểu collection nào trong .NET Framework bao gồm mảng,
dictionaries, lists, XML, và các CSDL,…
LINQ có những tính năng đáng để xem xét dù ta có thể đơn giản sử dụng typed
data sets hay các thực thể ta tạo ra để thực hiện việc xây dựng tầng truy vấn
CSDL theo mong muốn như:
• Sử dụng các cấu trúc truy vấn giống với SQL trong mã lệnh .NET hay xem

where c.OrderDate >= new Date(2008, 1, 1)
&& c.OrderDate <= new Date(2008, 12, 31)
group o by new { c.CustomerId, c.Name } into g
select new {
CustomerId = c.CustomerId,
CustomerName = c.Name,
TotalPaid = g.Sum(o => o.TotalPaid)
};
Trong ví dụ với LINQ thì trường OrderDate có kiểu là System.DateTime. Vì
vậy nếu ta so sánh nó với dữ liệu kiểu chuỗi, hay bất kể một đối tượng nào
không phải kiểu DateTime thì trình biên dịch sẽ báo lỗi và cho biết chính xác
vị trí lỗi xảy ra đây là một ích lợi khi sử dụng LINQ.
Ví dụ dưới đâu sẽ cho thấy với LINQ ta có các truy vấn tiện ích hơn so với
SQL ví dụ như lấy một oder có ID = 2, lấy đối tượng OderInformation đổi
ngày thêm vào rồi lưu oder này lại vào CSDL .
var order = (from o in dataContext.Orders
where o.OrderId == 2
select o).FirstOrDefault();
foreach(var orderInformation in order.OrderInformation)
8
TIÊU ĐỀ CHƯƠNG 2
orderInformation.DateAdded = DateTime.Now;
dataContext.SubmitChanges();
LINQ-to-SQL : Để LINQ có thể được sử dụng ta cần phải khởi tạo model
tương ứng . Việc tạo model này hoàn toàn có thể thực hiện bằng cách kéo
thả các bảng cũng như store procedure vào phần designer . Các model sẽ
được tạo tự động. Việc tạo model như vậy giúp xây dựng ứng dụng nhanh
chóng tuy nhiên lại là hạn chế vì chỉ có thể sử dụng với SQL server.
1.4.3. Thiết kế tầng logic nghiệp vụ
Tầng truy cập CSDL được xây dựng với LINQ-to-SQL trả về các tập hợp của các

//logic dùng chỉnh sửa nội dung
return View();
}
9
TIÊU ĐỀ CHƯƠNG 2
1.4.4. Xây dựng vùng nhớ đệm - caching , sử dụng mạng phân phối nội
dung tăng hiệu năng của hệ thống
Với những ứng dụng nền tảng web có những dữ liệu ít thay đổi và thường được
yêu cầu bởi nhiều người dùng và trong hệ thống siêu thị trực tuyến các dữ liệu
như vậy có thể kể tới như danh sách các đầu mục bài báo, đầu mục sản phẩm và
các sản phẩm…
Để có thể tăng hiệu ứng cho hệ thống với những dữ liệu kiểu này ta có thể tạo
vùng nhớ đệm cho chúng và giữ vùng nhớ đệm này ở bộ nhớ trong những khoảng
thời gian xác định. Asp.net framework cũng khá mạnh trong việc giúp chúng ta xây
dựng , quản lí vùng nhớ đệm ở trong các lớp điều khiển. Hãy xem một ví dụ sau
cho thấy việc tạo vùng nhớ đệm và duy trì nó trong 60 giây
[OutputCache (Duration = 60)]
public ActionResult SomeControllerMethod()
{
//logic nghiệp vụ
}
Trong trường hợp hệ thống được truy cập bởi một lượng lớn người dùng mỗi ngày
(vài ngàn đến vài chục ngàn) ta có thể tính tới việc sử dụng các mạng phân phối
nội dung (Content Delivery Networks) đây là mạng phát tán của các máy chủ
(distributed network of servers) giúp ta giải quyết vấn đền quá tải truy cập nội dung
của hệ thống, giúp người dùng truy cập nội dung hệ thống nhanh hơn . Các mạng
này thực hiện công việc phôn phối nội dung thông qua mạng của các máy chủ
DNS hướng yêu cầu của người dùng tới một máy chủ có sẵn nội dung người dùng
cần và gần người này nhất.
Nội dung cần phân phối có thể là các file ảnh, javascript, css, tài liệu, phim ảnh ,

điều này giúp tối ưu hóa khả năng tìm kiếm hệ thống của các hệ thống tìm kiếm
như google hay bing giúp các khách hàng chưa biết tới hệ thống có thể tìm đến hệ
thống thông qua cỗ máy tìm kiếm
Ở tầng này của hệ thống siêu thị trực tuyến có sử dụng javascript ở để xử lí các
sự kiện không đồng bộ phía người dùng. Cụ thể ta sẽ sử dụng JQuery – đây là
javascript framework ổn định , ra đời cách đây vài năm , có các tài liệu hỗ trợ đầy
đủ , dễ sử dụng .
11
TIÊU ĐỀ CHƯƠNG 2
CHƯƠNG 2: TÌM HIỂU ASP.NET MVC VÀ LINQ
1. TỔNG QUAN VỀ ASP.NET MVC
1.5. ASP.NET MVC là gì?
1.5.1. Mô hình MVC cơ bản
Tham khảo asp.net mvc của microsoft
MVC viết tắt của các chữ cái đầu của Models, Views, Controllers. MVC chia giao
diện UI thành 3 phần tương ứng: đầu vào của controller là các điều khiển thông
qua HTTP request, model chứa các miền logic, view là những thứ được sinh ra trả
về cho trình duyệt.
Hình 2.1 – Mô hình MVC cơ bản
Lợi ích của việc dùng phương pháp MVC là sự phân đoạn rõ ràng giữa models,
views, controllers bên trong ứng dụng. Cấu trúc sạch sẽ giúp cho việc kiểm tra lỗi
ứng dụng trở nên dễ dàng hơn.
12
TIÊU ĐỀ CHƯƠNG 2
1.5.2. Một vài đặc tính của ASP.NET MVC
• Tách rõ ràng các mối liên quan, mở khả năng test TDD (test driven
developer). Có thể test unit trong ứng dụng mà không cần phải chạy
Controllers cùng với tiến trình của ASP.NET và có thể dùng bất kỳ một unit
testing framework nào như NUnit, MBUnit, MS Test, v.v…
• Có khả năng mở rộng, mọi thứ trong MVC được thiết kế cho phép dễ dàng

13
TIÊU ĐỀ CHƯƠNG 2
Tính năng ASP.NET 2.0 ASP.NET MVC
Kiến trúc chương
trình
Kiến trúc mô hình
WebForrm 
Bussiness 
Database
Kiến trúc sử dụng
việc phân chia
chương trình thành
Controllers, Models,
Views
Cú pháp chương
trình
Sử dụng cú pháp của
webform. Tất cả các
sự kiện và controls
đều do server quản lí
Các sự kiện được
điều khiển bởi
Controllers, các
controls không do
server quản lí
Truy cập dữ liệu Sử dụng hầu hết các
công cụ truy cập dữ
liệu trong ứng dụng
Phần lớn dùng LINQ
to SQL class để tạo

do server quản lí dẫn
tới điều khiển không
khó khăn
URL address Cấu trúc địa chỉ URL
có dạng
<filename>.aspx?
Cấu trúc địa chỉ URL
rành mạch theo dạng
Controllers /Action/ Id
14
TIÊU ĐỀ CHƯƠNG 2
&<các tham số>
1.7. Quá trình thực thi một ứng dụng nền web ASP.NET MVC
Một yêu cầu gửi tới ứng dụng nền tảng web viết bằng ASP.NET MVC đầu tiên sẽ
đi qua đối tượng UrlRoutingModule, đây là một module của HTTP. Module này sẽ
phân tích yêu cầu và thực thi việc chọn lựa định tuyến. Nó sẽ chọn đối tượng route
đầu tiên thích hợp với yêu cầu hiện thời. (Đối tượng route là lớp thực thi BaseUrl ,
là một thể hiện cụ thể của lớp Route) Nếu không có định tuyến nào thích hợp đối
tượng UrlRoutingModule sẽ không thực hiện việc định tuyến mà trả yêu cầu đó
về cho IIS hay ASP.NET xử lí.
Từ đối tượng Route được chọn lựa, đối tượng UrlRoutingModule nhận lấy đối
tượng IRouteHandler tương ứng với đối tượng Route. Cụ thể trong một ứng dụng
ASP.NET MVC thì IRouteHandler sẽ là một thể hiện của MvcRouteHandler. Thể
hiện này sẽ tạo ra một đối tượng IHttpHandler và truyền nó tới đối tượng
IHttpContext . Theo mặc định,thể hiện IHttpContext của MVC là đối tượng
MvcHandler . Đối tượng này sẽ chọn ra controller đáp ứng yêu cầu gửi tới ứng
dụng.
Chú ý: Khi một ứng dụng nền Web viết bằng ASP.NET MVC chạy trên IIS 7.0 ,
phần mở rộng tên file là không cần thiết đối vớp dự án ứng dụng đó. Tuy nhiên
nến chạy trên IIS 6.0 , IIS 6.0 yêu cầu bạn phải chỉ ra cho ASP.NET ISAPI DLL

ứng dụng
Đối tượng MvcRouteHandler tạo ra một thể hiện của lớp
MvcHandler và truyền vào nó thể hiện RequestContext
Tạo ra
controller
Các đối tượng MvcHandler sử dụng thể hiện của
RequestContext để xách định đối tượng IcontrollerFactory
qua đó tạo ra thể hiện controller
Thực thi
Controller
Thể hiện MvcHandler gọi phương thức Execute của
controller.
Triệu gọi
action
Hầu hết các controllers đều kế thừa từ lớp Controller cơ bản.
Đối với các controller như thế đối tượng
ControllerActionInvoker đi kèm với controller đó sẽ xác định
phương thức action của lớp controller đó để gọi, và rồi gọi
phương thức đó.
Thực thi
kết quả
Một phương thức action cụ thể mà nhận được dữ liệu từ
người dùng sẽ chuẩn bị dữ liệu trả về thích hợp. Những kiểu
dữ liệu trả về được xây dựng sẵn có thể được trả về gồm có:
ViewResult (Cái thể hiện một View và là dữ liệu thường được
trả về nhất), RedirectToRouteResult, RedirectResult….
2. LINQ TO SQL
Tham khảo http://weblogs.asp.net/scottgu
1.8. 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)

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ứa mộ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ày trong một đoạn code bên dưới.
1.10. Tìm hiểu lớp DataContext
Khi ta bấm nút “Save” bên trong màn hình thiết kế LINQ to SQL, Visual Studio sẽ
lưu cá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ớp DataContext 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ình
hó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úng ta tạo ra ở trên:
18
TIÊU ĐỀ CHƯƠNG 2
Hình 2.3 – Mô hình NorthwindDataContext
1.11. Các ví dụ Linq to SQL
Lấy sản phẩm từ CSDL:
Đoạn lệnh dưới đây dùng cú pháp LINQ để lấy về Ienumerable các đối tượng
Product. Các sản phẩm lấy ra phải thuộc phân loại “Beverages”:
Hình 2.4 – Hình minh họa lấy sản phẩm từ CSDL với LINQ
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 li giá tiền và lưu
lại CSDL.
19
TIÊU ĐỀ CHƯƠNG 2
Hình 2.5 – Hình minh họa cập nhật sản phẩm từ CSDL với LINQ
Chèn thêm một phân loại mới và 2 sản phẩm vào CSDL:


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status