1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Lập trình ASP.NET MVC - Nghề: Lập trình máy tính - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu

101 35 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 101
Dung lượng 4,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

(NB) Giáo trình “Lập trình ASP.NET MVC” được biên soạn dành cho sinh viên cao đẳng nghề Lập trình máy tính với mục tiêu cung cấp cho người học các kiến thức và kỹ năng cần thiết như Trình bày quá trình xử lý yêu cầu của mô hình xử lý MVC và ASP.NET MVC; Kết nối và xử lý dữ liệu bằng LINQ và Entity Framework;m Xây dựng được ứng dụng web với ASP.Net MVC; Rèn luyện và nâng cao kỹ năng lập trình theo công nghệ Entity Framework (EF), Windows Communication Foundation (WCF).

Trang 2

Bà R a – Vũng Tàu, năm 2016

Trang 3

TUYÊN B  B N QUY NỐ Ả Ề

Tài li u này thu c lo i sách giáo trình nên các ngu n thông tin có thệ ộ ạ ồ ể 

được phép dùng nguyên b n ho c trích dùng cho các m c đích v  đào t o vàả ặ ụ ề ạ  tham kh o.ả

M i m c đích khác mang tính l ch l c ho c s  d ng v i m c đích kinhọ ụ ệ ạ ặ ử ụ ớ ụ  doanh thi u lành m nh s  b  nghiêm c m.ế ạ ẽ ị ấ

Trang 5

L I GI I THI UỜ Ớ Ệ

Giáo trình “L p trình ASP.NET MVC” đậ ược biên so n dành cho sinh viênạ  cao đ ng ngh  L p trình máy tính v i m c tiêu cung c p cho ngẳ ề ậ ớ ụ ấ ườ ọi h c các 

ki n th c và k  năng c n thi t đ  có th  hoàn thành  ng d ng web qu ng cáoế ứ ỹ ầ ế ể ể ứ ụ ả  

s n ph m, thả ẩ ương m i đi n t , … theo mô hình MVC trên.NET Framework.ạ ệ ửTác gi  đã nghiên c u m t s  tài li u, công ngh  hi n đ i k t h p v iả ứ ộ ố ệ ệ ệ ạ ế ợ ớ  kinh nghi m làm vi c th c t  đ  vi t nên giáo trình này. N i dung đệ ệ ự ế ể ế ộ ược tác 

gi  trình bày cô đ ng, d  hi u kèm theo các bả ộ ễ ể ước hướng d n th c hành chiẫ ự  

ti t giúp cho ngế ười h c d  ti p thu các ki n th c c n thi t và hình thànhọ ễ ế ế ứ ầ ế  

được k  năng ngh ỹ ề

Trong quá trình biên so n, ch c ch n giáo trình còn nhi u thi u sót. Tácạ ắ ắ ề ế  

gi  r t mong nh n đả ấ ậ ược ý ki n đóng góp c a quý th y/cô và các em sinh viênế ủ ầ  

Trang 7

M C L CỤ Ụ

Trang 7

Trang 8

K t n i và x  lý d  li u b ng LINQ và Entity Frameworkế ố ử ữ ệ ằ

Xây d ng đự ượ ức  ng d ng web v i ASP.Net MVCụ ớ

Ren luyên va nâng cao ky năng lâp trinh theo công nghê Entity Framework̀ ̣ ̀ ̃ ̣ ̀ ̣  (EF), Windows Communication Foundation (WCF)

Th c hi n các bài th c hành đ m b o đúng trình t , an toàn.ự ệ ự ả ả ự

N i dung c a mô đun:ộ ủ

T

T Tên các bài trong mô đun

Th i  gian

Trang 9

12 Tri n khai  ng d ng ể ứ ụ 10 Tích h pợ

Trang 9

Trang 10

Controller: thành ph n có trách nhi m ti p nh n và x  lý các yêu c u g iầ ẹ ế ậ ử ầ ử  

đ n cho  ng d ng, làm nhi m v  đi u ph i công vi c gi a View vàế ứ ụ ệ ụ ề ố ệ ữ  Model

 Vi c phát tri n  ng d ng, nâng c p, b ro tì và th  nghi m tr  nên đ nệ ể ứ ụ ấ ả ử ệ ở ơ  

gi n và d  dàng h n.ả ễ ơ

Trang 11

 Giúp phát tri n  ng d ng nhanh, đ n gi n, d  dàng nâng c pể ứ ụ ơ ả ễ ấ

B o trì: v i các l p đả ớ ớ ược phân chia, các thành ph n c a m t h  th ng dầ ủ ộ ệ ố ễ dàng được thay đ i nh ng có th  đổ ư ể ược cô l p t ng l p, ho c ch   nhậ ừ ớ ặ ỉ ả  

hướng đ n l p ngay g n k  nó, không làm  nh hế ớ ầ ề ả ưởng đ n c   ng d ng.ế ả ứ ụ

M  r ng: vi c thêm ch c năng vào t ng l p s  d  dàng h n.ở ộ ệ ứ ừ ớ ẽ ễ ơ

Nhược đi m

Thích h p v i các d  án v a và l nợ ớ ự ừ ớ

M t nhi u th i gian trong quá trình phát tri nấ ề ờ ể

M  th i gian trung chuy n d  li u gi a các l pấ ờ ể ữ ệ ữ ớ

1.3. Lý do nên làm trên mô hình MVC

Mô hình MVC đã chia  ng d ng thành các thành ph n Model, View vàứ ụ ầ  Controller   nên   người   phát   tri n   có   th   t o   ra   nhi u   View   và   nhi uể ể ạ ề ề  Controller cho các Model mà không ph i đ i m t v i vi c thay đ i trongả ố ặ ớ ệ ổ  thi t k  Model.ế ế

Trang 11

Trang 12

Nhóm View: ch u trách nhi m v  xây d ng giao di n tị ệ ề ự ệ ương tác v i ngớ ườ  idùng 

Nhóm Model: ch u trách nhi m v  vi c xây d ng các l p x  lý trên d  li uị ệ ề ệ ự ớ ử ữ ệNhóm Controller: có cái nhìn t ng th  v  các lu ng c a  ng d ng, qu n lýổ ể ề ồ ủ ứ ụ ả  các yêu c u, làm vi c v i các Model và l a ch n View hi n th  choầ ệ ớ ự ọ ể ị  

M c đích chính c a m u thi t k  này là cô l p x  lý nghi p v  t  giaoụ ủ ẫ ế ế ậ ử ệ ụ ừ  

di n ngệ ười dùng đ  t p trung vào kh  năng b o trì, c i ti n, ki m thể ậ ả ả ả ế ể ử 

t t h n và làm cho  ng d ng có c u trúc g n h n.ố ơ ứ ụ ấ ọ ơ

MVC Framework được đ nh nghĩa trong namespace System.Web.Mvc.ị

Trang 13

2.2 Ki n trúcế

Hình 1.2. Mô hình ki n trúc 3 thành ph n trong MVC ế ầ

Models là các thành ph n có nhi m v :ầ ệ ụ

Đ c và ghi d  li uọ ữ ệ

L u tr  thông tin, tr ng thái c a các đ i tư ữ ạ ủ ố ượng

T t c  các nghi p v  logic đ u đấ ả ệ ụ ề ược th c thi   Model. D  li u đự ở ữ ệ ượ  c

nh p t  ngậ ừ ười dùng s  thông qua View đ  ki m tra   Model trẽ ể ể ở ước khi 

l u vào CSDL. Vi c truy xu t, xác nh n và l u d  li u là ph n vi cư ệ ấ ậ ư ữ ệ ầ ệ  

Là các thành ph n x  lý tầ ử ương tác v i ngớ ười dùng, làm vi c v i Model,ệ ớ  

ch n m t View thích h p đ  hi n th  thông tin giao di n ngọ ộ ợ ể ể ị ệ ười dùngTrong m t  ng d ng MVC, View hi n th  thông tin, còn đi u khi n dòngộ ứ ụ ể ị ề ể  

nh p xu t c a ngậ ấ ủ ười dùng v n do Controller đ m trách.ẫ ả

Trang 13

Trang 14

2.3. Quá trình x  lý yêu c uử ầ

M t trong nh ng khái ni m quan tr ng nh t đ  hi u v   ng d ng MVC làộ ữ ệ ọ ấ ể ề ề ứ ụ  không có m i quan h  t n t i gi a m t yêu c u và m t t p tin v t lý bênố ệ ồ ạ ữ ộ ầ ộ ậ ậ  trong Web Server

Trong  ng d ng ASP.NET Web Forms truy n th ng, m i yêu c u đứ ụ ề ố ỗ ầ ượ  c

d ch thành m t l i g i đ n m t t p tin trong Web Server. Ví d : n uị ộ ờ ọ ế ộ ậ ụ ế  yêu c u là m t url ầ ộ http://myapp/mypage.aspx thì Web Server s  thôngẽ  

d ch yêu c u này b ng cách tìm ki m trong th  m c c a  ng d ngị ầ ằ ế ư ụ ủ ứ ụ  

m t t p tin có tên là mypage.aspx. Sau đó s  x  lý t p tin này và tr  vộ ậ ẽ ử ậ ả ề 

k t qu  d ng HTML.ế ả ạ

Đ i   v i   ng   d ng   MVC,   khi   ti p   nh n   m t   yêu   c u   (ví   d :ố ớ ứ ụ ế ậ ộ ầ ụ  http://myapp/product/list)   thì   m t   thành   ph n   độ ầ ược   g i   là  ọ “routing  engine” s  so sánh yêu c u v i route c  th ẽ ầ ớ ụ ể

Route s  xác đ nh các yêu c u b ng cách s  d ng m t chu i n n, thi t l pẽ ị ầ ằ ử ụ ộ ỗ ề ế ậ  Controller và phương th c bên trong Controller c n x  lý yêu c u.ứ ầ ử ầ

Khi Route được nh n di n, công c  route t o ra b  giám sát yêu c u, bậ ệ ụ ạ ộ ầ ộ này l n lầ ượ ẽ ạt s  t o ra các đ i tố ượng Controller đ  x  lý yêu c u (trongể ử ầ  

ví d  trên thì controller là ụ product và ph ng th c x  lý là ươ ứ ử list).

Hình 1.3. Quá trình x  lý yêu c u c a MVC ử ầ ủ

2.4. M t s  đ c đi mộ ố ặ ể

Ti p t c h  tr  các tính năng trong ASP.NETế ụ ỗ ợ

H  tr  s  d ng các t p tin .ASPX, ASCX, .Master nh  là thành ph nỗ ợ ử ụ ậ ư ầ  View

H  tr  đ y đ  các tính năng b o m t c a ASP.NETỗ ợ ầ ủ ả ậ ủ

Form/Windows   authenticate,   URL   authorization,   Membership/Roles, Output   và   data   caching,   secion/profile   state,   configuration   system, 

Trang 15

Tách rõ ràng các m i liên quan, m  ra 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, …ư

Có kh  năng m  r ng  ng d ng, m i th  trong MVC đả ở ộ ứ ụ ọ ứ ược thi t k  đ  dế ế ể ễ thay th , d  dàng tùy bi n.ế ễ ế

Ánh x  URL m nh m , cho phép xây d ng  ng d ng v i URL g n gàng,ạ ạ ẽ ự ứ ụ ớ ọ  thân thi n v i các Search Engineệ ớ

Không s  d ng mô hình PostBack t  giao di n g i đ n Server. Thay vào đó,ử ụ ừ ệ ử ế  

ch  đ ng đ a nh ng PostBack t  View đ n th ng Controller tùy ý.ủ ộ ư ữ ừ ế ẳ

Không còn ViewState hay Page Lifecycle t n t i trong mô hình MVCồ ạ

H  tr  công c  t o View (Support for Multiple View Engine)ỗ ợ ụ ạ

Cho phép ch n công c  t o Viewọ ụ ạ

H p tho i New Project cho phép xác đ nh View Engine m c đ nh cho m tộ ạ ị ặ ị ộ  project

Có th  d  dàng đ nh ra các quy lu t cài đ t để ễ ị ậ ặ ường đi. ASP.NET MVC 

d a   vào   các   quy   lu t   đó   đ   xác   đ nh   Controller   và   phự ậ ể ị ương   th cứ  (Action) c n ph i th c thi.ầ ả ự

Trang 15

Trang 16

ASP.NET còn có kh  năng phân tích URL, chuy n các thông s  trongả ể ố  URL thành các tham s  trong l i g i t i phố ờ ọ ớ ương th c trong Controller.ứModel Binding

vi c suy ngh  làm cách nào đ  ánh x  d  li u t  ngệ ỉ ể ạ ữ ệ ừ ười dùng sang các 

đ i tố ượng .NET)

Tính năng Bunding được áp d ng m c đ nh. Ngụ ặ ị ười phát tri n không c nể ầ  

ph i g i các script ho c các t p tin css riên bi t b i vì t t c  s  đả ọ ặ ậ ệ ở ấ ả ẽ ượ  cđóng gói và nén l i.ạ

Filters: tính năng m nh trong ASP.NET MVC, h  tr  cho vi c ki m tra tínhạ ỗ ợ ệ ể  

h p l  trợ ệ ước khi m t phộ ương th c hành đ ng đứ ộ ược g i ho c sau khi thiọ ặ  hành

Razor View

Cú pháp Razor g n gàng và xúc tích, đòi h i m t s  lọ ỏ ộ ố ượng t i thi u cácố ể  

t  h p phím.ổ ợ

Tìm hi u Razor tể ương đ i d  dàng vì nó d a trên C# và HTML.ố ễ ự

Visual Studio bao g m IntalliSense và mã cú pháp Razor đồ ược màu hóa

V i Razor View có th  ki m tra t ng đ n v  mà không đòi h i ph i ch yớ ể ể ừ ơ ị ỏ ả ạ  

ng d ng ho c ph i ch y Web Server

Không s  d ng ViewState đ  đi u khi n  ng d ng.ử ụ ể ề ể ứ ụ

B  sung m i h  th ng đ nh tuy n (Routers).ổ ớ ệ ố ị ế

Trang 17

H  tr  t i đa cho vi c ki m th  b ng vi c t o và cài đ t các unitests tỗ ợ ố ệ ể ử ằ ệ ạ ặ ự 

đ ng.ộ

H  tr  k t h p r t t t gi a ngỗ ợ ế ợ ấ ố ữ ườ ậi l p trình và thi t k  giao di n.ế ế ệ

Khuy t đi mế ể

Thay đ i cách l p trình c a Web Forms nên gây ra nhi u khó khăn choổ ậ ủ ề  

nh ng ngữ ười chuyên s  d ng Web Forms chuy n sang mô hình nàyử ụ ể  (không còn hướng đ n các s  ki n c a các control).ế ự ể ủ

Ngườ ậi l p trình ph i bi t nhi u v  HTTP, HTML, CSS và Javascript.ả ế ề ề

Áp d ng cho d  án nh  thì quá c ng k nh và ph c t pụ ự ỏ ồ ề ứ ạ

2.5. So sánh MVC và Web Form

ASP.NET Web Forms s  d ng ViewState đ  qu n lý ử ụ ể ả  khi có s  tự ương tác 

v i ngớ ười dùng thì x  lý ch m.ử ậ

ASP.NET MVC chia làm 3 thành ph n: Model, View, Controller.ầ

M i tọ ương tác c a ngủ ười dùng v i Views s  đớ ẽ ược x  lý thông qua vi cử ệ  

th c   hi n   các   phự ệ ương   th c   hành   đ ng   trong   Controllers,   không   cònứ ộ  PostBack, Lifecycle và events

Vi c ki m tra (test) và g  l i (debug)ệ ể ỡ ỗ

ASP.NET Web Forms ch y t t c  các ti n trình, s  thay đ i ID c a b tạ ấ ả ế ự ổ ủ ấ  

k  control nào cũng  nh hỳ ả ưởng đ n  ng d ng.ế ứ ụ

V i MVC, vi c đó có th  s  d ng các unit test đ  th m đ nh r t d  dàngớ ệ ể ử ụ ể ẩ ị ấ ễ  các Controller th c hi n th  nào.ự ệ ế

B ng so sánh các tính năng gi a ASP.NET Web Forms và ASP.NET MVCả ữ

Ki n trúcế Mô   hình   Web   form  

Bussiness  Database

S  d ng vi c phân chia  ngử ụ ệ ứ  

d ng   thành   Models,   Views,ụ  Controllers

Cú pháp S  d ng cú pháp c a Webử ụ ủ  

Form, t t c  các s  ki n vàấ ả ự ệ  controls do Server qu n lýả

Các s  ki n đự ệ ược đi u khi nề ể  

b i   các   controller,   cácở  controller   không   do   Server 

qu n lýảTruy   c p   dậ ữ 

Trang 18

Tương   tác 

v i Javascriptớ Khó   khăn   vì   các   control 

được đi u khi n b i Serverề ể ở D   dàng   vì   các   đ i   tễ ố ượ  ng

không do Server qu n lýảURL Không thân thi nệ Thân thi nệ

Trang 19

T O  NG D NG ASP.NET MVCẠ Ứ Ụ

Gi i thi u:ớ ệ

Bài này cung c p cho ngấ ườ ọi h c nh ng ki n th c và k  năng đ  t o m iữ ế ứ ỹ ể ạ ớ  

m t   ng   d ng   ASP.NET   MVC   s   d ng   mã   Razor   và   cài   đ t   Entityộ ứ ụ ử ụ ặ  Framework

Kh i đ ng Visual Studio 2013 (ho c m i h n)ở ộ ặ ớ ơ

T o m i project, ch n .NET Framework, th  m c và tên project theo h pạ ớ ọ ư ụ ộ  tho i dạ ướ ồi r i ch n OKọ

Trang 19

Trang 21

T  ch c l u trổ ứ ư ữ

C u trúc th  m c c a  ng d ng ASP.NET MVC g m 3 th c m c chính:ấ ư ụ ủ ứ ụ ồ ự ụ

Controllers: l u tr  các class đóng vai trò Controllerư ữ

Models: l u tr  các class Modelư ữ

Views: l u tr  các Viewư ữ

Các th  m c khácư ụ

Content: ch a các t p tin CSS, hình  nh liên quan đ n giao di nứ ậ ả ế ệ

Scripts: ch a các th  vi n Javascript, jqueryứ ư ệ

App_Start: ch a các t p tin liên quan đ n vi c c u hình cho các tính năngứ ậ ế ệ ấ  

nh : routes, filters, bundlesư

App_Data: l u tr  t p tin d  li u XML ho c local database, SQLiteư ữ ậ ữ ệ ặ

Bin: l u tr  các compiled c a  ng d ngư ữ ủ ứ ụ

Phân bi t ASPX và Razor View Engine

Gi ng nhau

Đ u dùng đ  hi n th  giao di n trên Web Browser, có khái ni m v  Masterề ể ệ ị ệ ệ ề  Page và User Control được đ nh nghĩa v i Layout (View đ  k  th aị ớ ể ế ừ  Layout) và PartialView (subView)

Khác nhau

ASPX: v n có th  s  d ng đẫ ể ử ụ ược các Master Page và User Control (k  cể ả đóng vai trò ch  hi n th  d  li u và không x  lý đỉ ệ ị ữ ệ ử ược d  li u) ữ ệ  d  dàngễ  cho ngườ ậi l p trình ch a k p thích nghi v i phong cách c a MVC, ngoàiư ị ớ ủ  

ra v n có th  s  d ng đẫ ể ử ụ ược subView đ  thay đ i cho User Control đ  xể ổ ể ử 

lý d  li u t  actionữ ệ ừ

Razor: được h  tr  m nh h n v  Javascript, tùy ch nh linh ho t gi a codeỗ ợ ạ ơ ề ỉ ạ ữ  C# v i HTML, linh ho t trong Layout và subView (PartialView)ớ ạ

Trang 22

i += 1;

<p>Line @i</p>

} }

T p tin có ph n m  r ng là ậ ầ ở ộ .cshtml

T o Web Page đ n gi n v i mã Razorạ ơ ả ớ

Click chu t ph i lên project ộ ả  Add  New Item…

Trang 24

Hình 2.5. Tìm ki m và cài đ t Entity Framework cho  ng d ng ế ặ ứ ụ

Bài 2: S  d ng vòng l p for ho c foreach.ử ụ ặ ặ

Bài 3: S  d ng vòng l p for ho c foreach, k t h p v i các th  HTML t oử ụ ặ ặ ế ợ ớ ẻ ạ  

Trang 26

Ngoài ra, n i dung bài cũng gi i thi u đ n m t CSDL m u đ n gi n choộ ớ ệ ế ộ ẫ ơ ả  

ng d ng th ng m i đi n t  CSDL này s  đ c s  d ng xuyên su t   các

Trang 27

Hình 3.2. Mô hình l p trình t ậ ươ ng tác gi a EF v i CSDL ữ ớ

ADO.Net providers

Layer này s  d ng chu n ADO.Net đ  làm vi c v i CSDLử ụ ẩ ể ệ ớ

Thi hành command và tr  k t qu  d a trên DBMS c  thả ế ả ự ụ ể

Entity Data Model (EDM)

Là m t t p h p các object mô t  c u trúc các nghi p v  (business data)ộ ậ ợ ả ấ ệ ụ  

và ánh x  đ n thành ph n l u tr  bên dạ ế ầ ư ữ ưới

G m có 3 layerồ

Conceptual – Conceptual Schema Definition Language (CSDL): ngôn 

ng  đ nh nghĩa các entity relationshipữ ị

Mapping – Mapping specification language (MSL): đ nh nghĩa các ánhị  

x  gi a l p conceptual và logicalạ ữ ớ

Logical/Storage   –   Store   Schema   Definition   Language   (SSDL):   đ nhị  nghĩa mô hình l u tr  c a d  li u.ư ữ ủ ữ ệ

Trang 27

Trang 28

Qu n lý k t n i (Managing Connections): s  d ng EntityConnectionả ế ố ử ụ

T o và thi hành truy v n: s  d ng EntityCommand, EntityDataReader,ạ ấ ử ụ  EntityParameter

Qu n lý giao tác (Managing Transactions)ả

Trang 29

Là m t ngôn ng  truy v n d  li u đ c l p, nó tộ ữ ấ ữ ệ ộ ậ ương t  nh  SQLự ư

Cho phép truy v n th c th  d  li u (entity data)ấ ự ể ữ ệ

L u ý: ngôn ng a này truy v n d a trên EDM ch  không ph i CSDLư ữ ấ ự ứ ảObject Services

Cho phép truy v n, thêm, c p nh t và xóa d  li uấ ậ ậ ữ ệ

Bi u di n d  li u dể ễ ữ ệ ưới d ng các đ i tạ ố ượng có đ nh ki u m nh trongị ể ạ  CLR

H  tr  ngôn ng  LINQ to Entities và eSQL d a trên các ki u đỗ ợ ữ ự ể ược đ nhị  nghĩa trong mô hình quan ni m.ệ

C  th  hóa d  li u tr  v  và các đ i tụ ể ữ ệ ả ề ố ượng và l u l i các tr ng thái thayư ạ ạ  

đ i v  CSDLổ ề

Các l p h  tr  n m trong System.Data.Entityớ ỗ ợ ằ

Các class t  đ ng phát sinh tự ộ ương  ng v i mô hìnhứ ớ

DbContext: đ i di n cho m t database, qu n lý các k t n iạ ệ ộ ả ế ố

DbSet<Tentity>: là m t t p h p các entity. M i đ i tộ ậ ợ ỗ ố ượng này tươ  ng

ng v i m t table

LINQ to Entities

Trang 29

Trang 30

Là phương pháp truy v n d  li u thông qua mô hình th c th  d  li uấ ữ ệ ự ể ữ ệ  (Entity Data Model – EDM) mà EF h  tr ỗ ợ

Chuy n  đ i  truy v n LINQ thành truy v n cây l nh (Command treeể ổ ấ ấ ệ  queries)

Chi n lế ượ ả ữ ệc t i d  li u trong EF

3.1. LazyDeferred loading

Lazy loading là quá trình mà m t ho c nhi u t p th c th  độ ặ ề ậ ự ể ược load tự 

đ ng t  CSDL l n đ u tiên hay không. N u t t nó thì thu c tính thamộ ừ ầ ầ ế ắ ộ  chi u đ n th c th  (Navigation properties) đế ế ự ể ược truy xu t (nghĩa là truyấ  

xu t các th c th  có liên quan)ấ ự ể

Thao tác: M  c a s  EDM, click ph i chu t, ch n Propertiesở ử ổ ả ộ ọ

Hình 3.5. Ch n chi n l ọ ế ượ ả c t i LazyDeferred

Ví d : vào c a s  code c a EDM, ta khai báo nh  sau:ụ ử ổ ủ ư

Trang 31

Lúc Lazy Loading b  t t, thì khi t o câu truy v n, ta ph i dùng Eager ho cị ắ ạ ấ ả ặ  Explicit loading đ  t i các th c th  có liên quan.ể ả ự ể

Ngượ ạc l i Lazy, Eager loading là quá trình t i nh ng th c th  có liên quanả ữ ự ể  

đ n th c th  đang truy v n khi đế ự ể ấ ược yêu c u tầ ường minh

S  d ng phử ụ ương th c Include đ  th c hi n Eager Loadingứ ể ự ệ

Trong  ng d ng, chúng ta thứ ụ ường b t Lazy Loading đ  tăng hi u qu  đ cậ ể ệ ả ọ  

d  li u.ữ ệ

Lúc nào c n d  li u liên quan thì dùng Includeầ ữ ệ

 Ví d : s a l i ví d  1, dùng Eager loadingụ ử ạ ụ

Trang 33

TRUY V N VÀ C P NH T D  LI U V I LINQ và ENTITYẤ Ậ Ậ Ữ Ệ Ớ  

DATA MODEL

Gi i thi u:ớ ệ

Bài này cung c p cho HSSV ki n th c và k  năng truy v n và c p nh tấ ế ứ ỹ ấ ậ ậ  

d  li u v i LINQ và Entity Data Modelữ ệ ớ

M c tiêu:

Trình bày quy trình truy v n d  li u LINQ to EFấ ữ ệ

Truy v n d  li u b ng k  thu t LINQ to EF và hi n th  trên Web Pageấ ữ ệ ằ ỹ ậ ể ị  MVC

Trình bày quy trình thêm, xóa, s a d  li uử ữ ệ

Xây d ng phự ương th c th c thi Store Procedureứ ự

Xây d ng đự ược Web Page thêm, xóa, s a d  li uử ữ ệ

Trang 34

Truy v n có đi u ki nấ ề ệ

Truy v n có s p x p d  li uấ ắ ế ữ ệ

Truy v n gom nhómấ

Trang 36

Thu c tính State: tr ng thái c a entity, g m các giá tr :ộ ạ ủ ồ ị

Added: đang được b  sung vào contextổ

Unchanged: các giá tr  trong context ch a thay đ iị ư ổ

Modified: các giá tr  trong context đã thay đ i nh ng ch a c p nh tị ổ ư ư ậ ậ

Deleted: đang được đánh d u xóa trong contextấ

Datached: th c t  không n m trong context hi n hành (nó không theo dõi)ự ế ằ ệ3.2. Xóa

Ví d  1:ụ

Trang 37

Vi t các lênh LINQ to EF th c hi n các yêu c u sau:ế ự ệ ầ

Bài 1. Danh sách khách hàng có DiaChi là Tp.HCM

Bài 2. Thêm khách hàng m i (thông tin b t k )ớ ấ ỳ

Bài 3. Th ng kê s  l ng hóa đ n c a m i khách hàngố ố ượ ơ ủ ỗ

Bài 4. Th ng kê t ng ti n hóa đ n c a m i khách hàngố ổ ề ơ ủ ỗ

Bài 5.  Truy v n k t KhachHang và HoaDon, l y ra thông tin Holot, Ten,ấ ế ấ  HD_ID và GiaTri

Trang 37

Trang 38

T o đạ ược các Data Model v i EFớ

L p trình đậ ược các hàm đ c và c p nh t d  li u thông qua Modelọ ậ ậ ữ ệ

C n th n, th c hi n đúng các bẩ ậ ự ệ ướ ạc t o Entity Data Model, khai báo đúng thông tin k t n i đ n ngu n d  li uế ố ế ồ ữ ệ

1 Khái ni m

Là thành ph n c t lõi c a  ng d ng, có nhi m v  truy c p d  li u t  m tầ ố ủ ứ ụ ệ ụ ậ ữ ệ ừ ộ  ngu n d  li u và cung c p d  li u cho ngu n d  li u đó.ồ ữ ệ ấ ữ ệ ồ ữ ệ

L u tr  thông tin, tr ng thái c a các đ i tư ữ ạ ủ ố ượng

T t c  các nghi p v  logic đ u đấ ả ệ ụ ề ược th c thi   Model.ự ở

M t model class trong  ng d ng ASP.NET MVC không tr c ti p x  lý đ uộ ứ ụ ự ế ử ầ  vào t  trình duy t, cũng không t o ra HTML cho trình duy t.ừ ệ ạ ệ

D  li u nh p vào t  ngữ ệ ậ ừ ười dùng thông qua View đ  ki m tra   Modelể ể ở  

trước khi l u vào CSDL.ư

Model có th  để ược phân làm 3 lo i: Data Model, Business Model và Viewạ  Model v i nhi u v  c  th  khác nhau.ớ ệ ụ ụ ể

Các lo i Model

2.1. Data Model

Các đ i tố ượng trong Data Model đ i di n cho các class tạ ệ ương tác v i m tớ ộ  CSDL. Các class đượ ạc t o ra b i nh ng công c  nh  Entity Frameworkở ữ ụ ư  (EF)

Trang 39

Các class này có th  để ượ ạc t o ra t  phừ ương pháp Database First ho c Codeặ  first. Ngoài ra, cũng có th  s  d ng ADO.NET đ  t o th  công.ể ử ụ ể ạ ủ

2.2. Business Model

Các class trong Business model thường được th c hi n ch c năng ki m traự ệ ứ ể  các quy t c nghi p v  ho c x  lý nghi p v  (ví d : tính toán chi phí v nắ ệ ụ ặ ử ệ ụ ụ ậ  chuy n c  th  cho m t gi  hàng d a trên tr ng lể ụ ể ộ ỏ ự ọ ượng c a m t hàng đủ ặ ượ  cmua). V i 1 ph n trách nhi m x  lý đó, các class trong business model có thớ ầ ệ ử ể 

tương tác v i các class trong Data model đ  đ c ho c l u tr  d  li u trongớ ể ọ ặ ư ữ ữ ệ  CSDL

Ch c năng c a m t view model class không x  lý b t k  đi u gì, thay vàoứ ủ ộ ử ấ ỳ ề  

đó, ch c năng duy nh t c a nó là ch a d  li u và siêu d  li u tùy ch nứ ấ ủ ứ ữ ệ ữ ệ ọ  (optional metadata) giúp cho view render chính xác

View model cũng được s  d ng khi ngử ụ ười dùng yêu c u t  m t view đãầ ừ ộ  

được render trước đó (ví d : khi submit m t form liên h )ụ ộ ệ

T o Data Model v i EFạ ớ

Click chu t ph i th  m c Models, ch n Add ộ ả ư ụ ọ  ADO.NET Entity Dat Model

Trang 39

Trang 40

Hình 5.1. Các b ướ ạ c t o ADO.NET Entity Data Model

Đ t tên cho model theo hình bên dặ ưới

Hình 5.2. H p tho i đ t tên cho Model ộ ạ ặ

Ch n EF Designer from database (Data first) nh  hình bên dọ ư ưới

Hình 5.3. Ch n d  li u ngu n cho Model (Data first) ọ ữ ệ ồ

Trong   h p   tho i   Choose   Your   Data   Connection,   click   chu t   lên   nút   Newộ ạ ộ  Connection

Ngày đăng: 01/11/2020, 23:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w