3. I. GIỚI THIỆU ENTITY FRAMEWORK
Là nền tảng truy cập dữ liệu của Microsoft bao gồm
một tập hợp các kỹ thuật được kế thừa và phát triển từ
ADO.NET.
Giúp lấp đầy khoảng cách giữa lập trình hướng đối
tượng và cơ sở dữ liệu.
Phiên bản đầu tiên phát hành vào tháng 7 năm 2008
như một phần của Visual Studio 2008 SP1.
Entity Framework 4.1 là phiên bản mới nhất được
phát hành vào tháng 7 năm 2011.
3
5. II. KIẾN TRÚC (TT)
Ki n trúc c a Entity Frameworkế ủ
I. Entity Data Model là s k tự ế
h p c a 3 mô hình:ợ ủ
1. Conceptual Schema
2. Mapping Schema
3. Logical Schema
Conceptual là mô hình quan
ni m d li u mô t các th c thệ ữ ệ ả ự ể
(entity/object) và m i quan hố ệ
gi a chúng.ữ
Mapping th c hi n nhi m vự ệ ệ ụ
ánh x gi a mô hình quan ni mạ ữ ệ
d li u và mô hình logicữ ệ
Logical(Storage) Mô t cácả
b ng d li u, view, procerdure vàả ữ ệ
m i quan h gi a chúngố ệ ữ
5
6. II. KIẾN TRÚC (TT)
Truy v n d li u nh th nào?ấ ữ ệ ư ế
Đó là câu h i đ c đ t ra c a các nhà phátỏ ượ ặ ủ
tri n Entity Framework t khi xây d ng.ể ừ ự
S d ng SQL Query? N u s d ng s không hử ụ ế ử ụ ẽ ỗ
tr đ c nhi u h qu n tr c s d li u.ợ ượ ề ệ ả ị ơ ở ữ ệ
Ngôn ng truy v n chính đ c ch n làữ ấ ượ ọ
LINQ to Entities, bên c nh đó v n h tr m tạ ẫ ỗ ợ ộ
ngôn ng truy v n khác t ng t nh SQL đó làữ ấ ươ ự ư
Entity SQL, ngoài ra v i EF cho phép chúng ta cóớ
th g i tr c ti p m t câu l nh SQL hay m tể ọ ự ế ộ ệ ộ
Procerdure t database.ừ
6
7. NH NG Đ C ĐI M N I B T C A ENTITYỮ Ặ Ể Ổ Ậ Ủ
FRAMEWORK
H tr cho nhi u h qu n tr c s d li uỗ ợ ề ệ ả ị ơ ở ữ ệ
o MSSQL Server, Oracle, MySql, PostgreSQL, SQL
Anywhere, DB2,Informix ,U2, Ingres, Progress,
Firebird, Synergy, Virtuoso
T o ra mô hình chung gi a database và môạ ữ
hình th c th quan h c a ng d ngự ể ệ ủ ứ ụ
Truy v n d li u thông qua Linq to Entitiesấ ữ ệ
H tr ki u d li u ph c h p (Complex Typeỗ ợ ể ữ ệ ứ ợ
Support)
H tr nhi u cách đ t o ra mô hình và có thỗ ợ ề ể ạ ể
hi u ch nh mô hình m t cách tr c quan (Modelệ ỉ ộ ự
Browser Improvements)
Và m t s tính năng khác….ộ ố 7
8. II. NH NG Đ C ĐI M N I B T C AỮ Ặ Ể Ổ Ậ Ủ
ENTITY FRAMEWORK
Linh ho t trong vi c mô hình hóa d li u h ngạ ệ ữ ệ ướ
đ i t ngố ượ
DB Model
DB Model
DB Model
Model First (VS 2010 and .NET 4.0)
Code First (Only) (Entity Framework Feature CTP5)
Database First (VS 2008 and .NET 3.5 SP1)
8
9. III.NHỮNG KHÓ KHĂN HIỆN NAY
V i mô hình l p trình N- tier ng i l p trình ph iớ ậ ườ ậ ả
m t khá nhi u th i gian đ thi t k Data Accessấ ề ờ ể ế ế
Layer.
V i mô hình (MVC,MVP) c n khá nhi u th i gian choớ ầ ề ờ
c u trúc Model.ấ
Không ki m soát đ c thay đ i gi a Database và codeể ượ ổ ữ
ch ng trình(L i không phát hi n đ c).ươ ỗ ệ ượ
Kh năng chuy n đ i HQTCSDL r t khó khăn.ả ể ổ ấ
Ng i l p trình ph i hi u rõ ki n trúc và SQL Queryườ ậ ả ể ế
c a t ng h qu n tr c s d li u.ủ ừ ệ ả ị ơ ở ữ ệ
Th i gian và chi phí s n xu t ph n m m tăngờ ả ấ ầ ề
Khó khăn cho vi c b o trì và nâng c p ph n m m.ệ ả ấ ầ ề
9
10. IV.ENTITY FRAMEWORK GIẢI QUYẾT
NHỮNG KHÓ KHĂN NHƯ THẾ NÀO?
V i vi c truy v n d li u thông qua Entity Dataớ ệ ấ ữ ệ
Model
L p Data Access (N-Tier), Model (MVC,MVP) đã đ cớ ượ
Entity Framework h tr ng i l p trình ch t pỗ ợ ườ ậ ỉ ậ
trung vào nghi p v khác hàng (buisiness rule) vàệ ụ
giao di n ng i dùng.ệ ườ
D dàng chuy n đ i sang h qu n tr c s dễ ể ổ ệ ả ị ơ ở ữ
li u khác.ệ
Khi thay đ i c u trúc database ch c n ánh x l iổ ấ ỉ ầ ạ ạ
EDM.
Nh ng l i do thay đ i c u trúc database đ cữ ỗ ổ ấ ượ
phát hi n ngay lúc biên d ch ch ng trình (Tránhệ ị ươ
đ c l i ti m n).ượ ỗ ề ẩ 10
11. IV.ENTITY FRAMEWORK GIẢI QUYẾT
NHỮNG KHÓ KHĂN NHƯ THẾ NÀO?
Ng i l p trình ch c n bi t LINQ là có th truyườ ậ ỉ ầ ế ể
v n d li u không c n ph i bi t nhi u v c uấ ữ ệ ầ ả ế ề ề ấ
trúc SQL query, đ c đi m c a m i h qu n tr cặ ể ủ ỗ ệ ả ị ơ
s d li u.ở ữ ệ
V i LINQ chúng ta có th chia các th t c SQLớ ể ủ ụ
ph c t p ra thành nhi u hàm, bi n l u tr dứ ạ ề ế ư ữ ữ
li u (Entity Object) theo ch c năng. Nh đó quáệ ứ ờ
trình Debug, b o trì, nâng c p đ c đ c th cả ấ ượ ượ ự
hi n d dàng h n.ệ ễ ơ
11
12. V. KẾT LUẬN
V i nh ng tính năng Entity Framework cung c pớ ữ ấ
đ ng th i giúp chúng ta kh c ph c nh ng khóồ ờ ắ ụ ữ
khăn hi n t i.ệ ạ
S d ng Entityử ụ
Framework đ phátể
tri n ph n m mể ầ ề
12
Nhin tren mo hinh ta de dang nhan thay EF duoc ke thua tu ADO.NET
Cung cap them mọt so tinh nang de mo hinh hoa du lieu Thanh nhung thuc the dang doi tuong lien ket voi nhau thong qua cac moi quan he