Entity Fram Work

Embed Size (px)

Citation preview

TRNG I HC SPKT-TPHCM KHOA CNTT Bi bo co mn: Chuyn 2

1

LOGO

Entity Framework 4.0

GVHD: Nguyn Minh o Cc thnh vin nhm : H Tun Quc Nguyn Thnh Sinh Nguyn Kim Sn ng Th Kim Thy Trn Ngc Tr

07110097 07110101 07110104 07110129 071101432

Ni dung

3

Ni dung

4

I. Gii thiu Entity Framework 4.01. Nhng vn pht sinh Entity Framework Gi s khi c 1 s thay i no v table, store proceduce, column, trong CSDL vic coding ca cc dev s tr nn kh khn Vn y l cc devs ch cn quan tm n vic pht trin ng dng v khng cn quan tm n d liu,stored procedure, relationship, d liu c t chc nh th no?

5

I. Gii thiu Entity Framework 4.0 (tt)1. Nhng vn pht sinh Entity Framework (tt) Ci m EF cung cp y l mt m hnh m d liu v ng dng s di chuyn ln nhau, tng tc qua li ln nhau. EF l mt m hnh khi nim, cho php lm vic gia c s d liu v ng dng, loi b khong cch gia ng dng v d liu m cc dev phi lm khi lm vic vi i tng DataReader v cc cng ngh truy xut d liu khc.6

I. Gii thiu Entity Framework 4.0 (tt)2. Cc m hnh trc y M hnh ERM (Entity Relationship Model): M hnh UML (Unified Modeling Language M hnh ORM (Object-Relational Mapping): M hnh DFD (Data Flow Diagram):

7

I. Gii thiu Entity Framework 4.0 (tt)2. Cc m hnh trc y (tt) Mi m hnh c 1 chc nng ring v chng b gii hn trong 1 phm vi nht nh no . V d: m hnh ERM ch th hin tt m hnh d liu mc logic, nhng m hnh UML th khng th. Ngc li, m hnh UML li ni tri hn trong vic m t cc i tng

8

I. Gii thiu Entity Framework 4.01. L do chn Entity Framework 4.0 ADO.NET Entity Framework l mt tp hp cc cng ngh trong ADO.Net , n c xem nh l mt Object/Relational Mapping (ORM) framework cho php cc developers lm vic vi d liu quan h nh l cc objects, loi b hu ht cc code cho vic truy xut d liu m cc developers phi vit S dng Entity Framework, cc developers c th s dng v khai thc sc mnh ca LINQ trong vic khai thc d liu9

I. Gii thiu Entity Framework 4.0 (tt)ADO.NET Entity Framework cn cung cp rt nhiu cc tnh nng khc nh: change tracking, identity resolution, lazy loading, query translation, EF 4.0 c th: Lm vic vi nhiu c s d liu khc nhau (Microsoft SQL Server, Oracle, DB2) Cung cp mt mapping engine mnh m

10

I. Gii thiu Entity Framework 4.0 (tt) Kt hp vi Visual Studio 2010 cung cp cho ngi dng mt cng c mnh m, cho php t ng xy dng model t database c sn hoc trin khai database mi hon ton t model Kt hp vi tt c cc ng dng .NET khc nh ASP.NET, Windows Presentation Foundation, Windows Communication Foundation (WCF), WCF Data Services (ADO.NET Data Service),

11

I. Gii thiu Entity Framework 4.0 (tt)

12

I. Gii thiu Entity Framework 4.0 (tt)Vic s dng Entity Framework xy dng cc ng dng mang tnh data-oriented mang li cc li ch sau Rt ngn c thi gian pht trin ng dng Cc developer lm vic vi m hnh ng dng hng i tng ng ngha Cc ng dng s thot khi vic ph thuc qu nhiu vo m hnh lu tr Vic thay i mapping gia m hnh i tng v cu trc lu tr c th c thc hin d dng H tr vic s dng LINQ

13

I. Gii thiu Entity Framework 4.0 (tt)2. Cc tnh nng trong EF 4.0 H tr Plain Old CLR Objects (POCO) H tr Model-First Related ObjectDeferred Loading (H tr chc nng Deferred Loading ca cc i tng lin quan) H tr cc chc nng trong LINQ to Entities H tr Plurality Naming Customized Object Layer Code Generation Model Browser Improvements14

Ni dung

15

II. The Entity Data Model (EDM) EDM l cu ni gia ng dng v d liu N l mt thnh phn cho php bn lm vic vi m hnh d liu ch khng phi l trc tip vi c s d liu

16

II. The Entity Data Model (tt)1. To EDM - C 3 cch thng dng: Data-first: Bt u vi CSDL Model-first: Cho php bn bt u vi mt model rng, nh ngha model v to ra database, mappings thnh class t model nh ngha. Code-only: Cho php bn s dng EF s dng Plain Old CLR Objects(POCO) m khng cn file EDMX Ch : File *.EDMX c to ra trong 2 phng php to EDM l Database-first v Model first, cn Code-only th khng cn to file *.EDMX17

II. The Entity Data Model (tt)2. Making Generated Object Names Plural or Singular y l mt trong nhng ci tin ng ch trong EF 4.0 m chng ta cn quan tm. Trong cc phin bn trc ca EF, Entity s t Name v Entity Name properties cng mt kiu, v d nu bn mapped bng Person th Entity s t Name v Entity Name properties cng tn l Person. Quy c t tn nh vy c th gy ra s nhm ln khi vit code trong Model, v name ca objects khng hon ton c ngha.

18

II. The Entity Data Model (tt) Quy trnh t tn tun theo nguyn tc ca s t v s nhiu trong ting Anh. t tt c cc EntityType names l singular (s t) t tt c cc Entity Set names l plural (s nhiu)

19

II. The Entity Data Model (tt)3. Managing Table Inheritance (Qun l k tha gia cc bng) C 2 options cho k tha gia cc bng: - Table-per-type: S dng ring bng lu tr d liu cho mi loi trong phn cp tha k. - Table-per-hierachy: s dng mt bng lu tr d liu cho tt c phn cp tha k. T khi EF engine s dng table-per-type mapping stratery, mi entity mapped vi mt bng d liu, y l im chnh to ra database schema.20

II. The Entity Data Model (tt)3. Managing Table Inheritance (tt)

Entity Types and Tables21

Ni dung

22

III. The Entity Data Model Inside and Out1. Designer window v EDM

23

III. The Entity Data Model Inside and Out (tt)a. Designer window Designer window cung cp mt ci nhn tng th v EDM v cc thnh phn ca model. Thng qua EDM, bn c th To v chnh sa cc entities To v chnh sa lin kt gia cc entities Xem v chnh sa cc nh x (mappings) Chnh sa cc mi quan h k tha24

III. The Entity Data Model Inside and Out (tt) Cc thnh phn: Designer surface: B mt trc quan dng to, chnh sa m hnh khi nim Mapping Details window: Ni nhng nh x c to ra hoc chnh sa Toolbox: Cha cc iu khin to ra cc thc th, mi lin kt v mi quan h k tha. Model Browser window: Cung cp ci nhn v m hnh khi nim v lu tr.

25

III. The Entity Data Model Inside and Out (tt)b. Model Browser window

26

III. The Entity Data Model Inside and Out (tt)b. Model browser (tt) The Model Browser window cung cp mt cu trc cy ca Model c nh ngha trong EDM (specifically, edmx.). Trong Model Browser window bn c th: Xc nh ENTITY trn Designer Window bng cch kch chut phi Entity v chn Show in Designer. Xa cc Object t Storage Model, bao gm c stored procedures, tables, and views. Import cc hm t stored procedure bng cch kch chut phi vo stored procedure v la chn Add Function Import. Cp nht cc model t c s d liu.

27

III. The Entity Data Model Inside and Out (tt)c. Mapping Details Window Mapping Details window cung cp mt giao din cho php bn xem v chnh sa cc physical mapping gia Storage model v conceptual model Khi mt Entity c chn, Mapping Details window hin th cc mapping gia cc Entity properties v table colum trong storage model.

28

III. The Entity Data Model Inside and Out (tt)2. Entity Bao gm 2 loi l: Entity type: i din cho mt loi d liu, chng hn nh Employee, Order hoc Product. Entity set: L mt container cho cc Entity c kiu n. Cc Entity Type c nhm thnh mt Entity Set.

29

III. The Entity Data Model Inside and Out (tt)a. Scalar Properties: l mt thuc tnh ca Entity. Quy nh v cc tnh cht cng nh di ca cc bin.

30

III. The Entity Data Model Inside and Out (tt)b. Complex types: Cung cp c ch x l cho vic lu tr hoc ng gi cc thuc tnh quan h vo trong 1 hoc nhiu entities.

31

III. The Entity Data Model Inside and Out (tt)c. Navigation property Cc thuc tnh Navigation gip xc nh hng ca cc Asscociation.

32

III. The Entity Data Model Inside and Out (tt)3. Mapping details Ca s Mapping Detail cho php bn xem v chnh sa mapping gia Conceptual model v storage model trong EDM.

33

III. The Entity Data Model Inside and Out (tt)4. Lifting the EDM Hood Nhn vo m hnh th ch l mt phn nh ca Model c th xem c, nhng hu ht cng vic c thc hin nm lp bn di m ta khng nhn thy c (Hood) Kch chut phi vo tp tin .edmx v chn Open With

34

III. The Entity Data Model Inside and Out (tt)

35

III. The Entity Data Model Inside and Out (tt)5. The EDM Model Parts Hnh trn cho ta thy hai phn khc nhau, Runtime v Designer. Phn Runtime bao gm 3 phn: SSDL: Storage Schema Definition Language CSDL: Conceptual Schema Definition Language CS (MSL): Mapping information

36

Ni dung

37

IV. Truy vn trong EDM1. C php truy vn

a. C php Query-expression var q= from Where Order by Group by Select V d: var people = from p in context.People orderby p.FirstName where p.LastName == King" || p.LastName == "Jones" group p by p.LastName;

38

IV. Truy vn trong EDM (tt)b. Method-Based Syntax C php Mothod-based c bit nh l biu thc Lambda V d var people = context.People.Where(c => c.LastName == "King").OrderBy(d => d.FirstName);

Biu thc Lambda s dng ton t =>, c c l goes to. Ngha l: bn tri l tham s u vo, bn phi l biu thc hoc khi cc cu lnh

39

IV. Truy vn trong EDM (tt)2. Cc ty chn truy vn a. LinQ to Entities L c php n gin v n gn gi vi ngi bit c pht Linq Truy vn LINQ bt u bng mnh FROM v kt thc bng mnh SELECT

40

IV. Truy vn trong EDM (tt)V d:from p in context.People where p.LastName == "King" orderby p.FirstName select new { p.FirstName, p.LastName };

p n gin ch l tn bin truy vn dng tham chiu n entity m ta ang lm vic. Ngoi ra c 4 ton t chun cho cu truy vn LINQ: from, where, orderby, select.

41

IV. Truy vn trong EDM (tt)b. Entity SQL Gn ging T-SQL, c dng lu tr d liu 1 cch c lp Khng h tr c php *, v d: Select *, count (*) Tham kho s khc bit trn trang: http://msdn.microsoft.com/enus/library/bb738573(VS.100).aspx

42

IV. Truy vn trong EDM (tt)3. EntityClient Khng c ngn ng ring nhng s dng ngn ng SQL thc thi dng lnh trong Entity Model S dng th vin: using System.Data.EntityClient

43

IV. Truy vn trong EDM (tt)a. EntityConnection c cung cp kt ni vi EDM, khng phi kt ni trc tip vi Database V d:using (EntityConnection conn = new EntityConnection("name = AdventureWorks2008Entities"))

44

IV. Truy vn trong EDM (tt)b. EntityCommand i din cho Command s c thc thi trong EDM C s kin ging vi CommandText, v phng thc ExecuteReader

45

IV. Truy vn trong EDM (tt)4. Thc thi Defferd v Immediate a. Phng php thc thi Deferred var query = from p in context.people select new { p.LastName, p.FirstName, p.MiddleName } - Nhng cu truy vn nh trn cha c thc thi ngay, bin query ch lu tr cu truy vn. - Cu truy vn c thc thi khi thc hin cu lnh foreach46

IV. Truy vn trong EDM (tt)b. Thc thi ngay lp tc (immediately) Bt c cu truy vn no tr v gi tr singleton u l thc thi trc tip thc thi cu truy vn ngay lp tc ta thm vo phng thc: ToList: to 1 List(T) t IEnumerable(T). ToDictionary: to 1 Dictionary from an IEnumerable(T).47

IV. Truy vn trong EDM (tt) ToLookup: to 1 generic Lookup from an IEnumerable(T). ToArray: to 1 mng from an IEnumerable(T). Average: tnh ton gi tr trung bnhComputes the average of a sequence of numeric values. First: ly ra i tng u tin (=select (1) top) Count: m s lng i tng c tr v. Max: tr v gi tr ln nht.

48

IV. Truy vn trong EDM (tt) V d :

var query = (from p in context.People select new { p.LastName, p.FirstName, p.MiddleName, p.BusinessEntityID}).ToList();

49

Ni dung

50

V. Lm vic vi cc Entities1. Object Contex L mt phn thuc khng gian tn System.Data.Objects v System.Data.Objects.DataClasses ng gi mt i tng ObjectStateManager qun l cc i tng trong CUD Ngoi ra mi ObjectContex cn c i tng ObjectStateEntry dnh ring cho tng Entity

51

V. Lm vic vi cc Entities (tt)2. ObjectStateEntry Duy tr trng thi v thng tin chnh cho cc Entity Qun l cc EntityState v cc gi tr EntityKey Cc ObjectStateEntry trong cng mt ObjectStateManager th khng c cha cng mt kha ging nhau Khi mt Entity c to, ObjectStateEntity s lu li Entity .

52

V. Lm vic vi cc Entities (tt) V khi cc Entity b thay i, thuc tnh EntityState s c cc gi tr sau: Detached: i tng c to nhng cha c cc Object Service qun l Unchanged: i tng cha c chnh sa, tnh t lc n c np hoc t ln cui phng thc SaveChanges c gi Added: i tng va mi c np vo ng cnh v cha gi phng thc SaveChanges ln no Deleted: i tng b xa ra khi ng cnh. Modified: i tng thay i nhng cha gi phng thc SaveChanges53

V. Lm vic vi cc Entities (tt)3. Tracking and Saving Changes Duy nht mt th hin ca mt i tng c lu trong b m v c Object Service qun l Chc nng ny c cung cp bi tp hp MergeOption, bao gm: AppendOnly: Nhng i tng hin c trong ObjectContext u khng c np t d liu ngun OverwriteChanges: Ton b thuc tnh ca cc i tng trong ObjectContext s b ghi 54

V. Lm vic vi cc Entities (tt) PreserveChanges: Cc i tng lun c np ln t d liu ngun nhng vn gi li cc gi tr b thay i trong ObjectContext NoTracking: Cc i tng khng cn c theo di bi ObjectStateManager v c duy tr trong trng thi Detached. Chu trch nhim\ Cc Entity c lu xung d liu ngun bng phng thc SaveChanges ca ObjectContext

55

V. Lm vic vi cc Entities (tt) i vi ADO.NET 4.0 EF, b khi dng SaveChanges(Boolean) b thay bng SaveChanges(SaveOptions). Do , phng thc SaveChanges c 2 b khi dng l: SaveChanges(): lu ton b gi tr cp nht xung CSDLv ci t li cc gi tr trong b theo di ca ObjectContext SaveChanges(SaveOptions): lu cc gi tr cp nht xung CSDL cng vi gi tr SaveOption tng ng

56

V. Lm vic vi cc Entities (tt) B khi dng th 2 cho php chng ta chn la hnh vi ca ObjectContext khi phng thc SaveOptions c gi. Cc thnh vin ca tp hp trn gm: AcceptAllChangesAfterSave DetectChangesBeforeSave None V d:context.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);

57

V. Lm vic vi cc Entities (tt)4. 5. 6. 7. Updating Entities Dng cp nht Entity Xem demo Adding Entities Relational Inserts Deleting Entites

58

Ni dung

59

VI. Stored Prodcedures v EDM1. Store procedure trong EDM Mc nh khi to EDM, n s to ra 1 store procedure qun l Bn c th to ra nhiu store procedure qun l vic insert, update, delete t database Sau khi to store procedure, ta s add vo model. V d minh ha

60

VI. Stored Prodcedures v EDM (tt)2. Model Browser Ca s trnh by cc th tc trong Store procedure sau khi c to ra

61

VI. Stored Prodcedures v EDM (tt)3. Chc nng ca EF Khi thm store procedure vo EDM, SOAP Service Description Language (SSDL) i din cho store procedure nh 1 chc nng Store procedure c biu din thng qua th Element ny cha mt vi attribule nh ngha nh c im v hnh vi ca store procedure nh schema

62

VI. Stored Prodcedures v EDM (tt)4. Mapping function Mc nh, EF xy dng cc cu lnh insert, delete, update v gi chng ti ni lu tr d liu thc thi. Behavior mc nh c th c overwritten bi mapping functions n 1 entity c th

63

VI. Stored Prodcedures v EDM (tt) Cch ty chnh

u tin thc hin map insert function. Trong ca Mapping detail, click . Khi c 1 list drop-down sn. La chn InsertPerson.

64

VI. Stored Prodcedures v EDM (tt)

65

VI. Stored Prodcedures v EDM (tt)Tip theo, map update fuction chn UpdatePerson store procedure t drop-dow list. Hnh di ch ra kt qu mapping:

66

VI. Stored Prodcedures v EDM (tt)Cui cng, map chc nng delete DeletePerson store procedure. Mn hnh kt qu:

67

VI. Stored Prodcedures v EDM (tt)6. Using functions in queries Trong model browser, bn R_click vo store procedure SelectPeron=> Add Function Import,

68

VI. Stored Prodcedures v EDM (tt) Ch rng Add Function Import c i tn l Create Function Import trong ADO.NET 4.0 Entity Framework. Di y l thng tin bng ty chn Add Function Import

69

Ni dung

70

VII. Relationships v Associations1. Relationships in General Trong EDM designer, bn s thy cc relationships gia cc entities. Nhng relationships hoc associations th c hin th bng ng thng gia cc entities

71

VII. Relationships v Associations (tt) Cc loi: One: hin th s 1, v cui relationships ch c th c mt item, khng t hn 1 v khng nhiu hn 1. Many: Hin th du *, cui relationships c th c mt hoc nhiu hn mt items. Zero or One: Hin th k t: 0..1, cui relationships c th khng c hoc c mt item.

72

VII. Relationships v Associations (tt)2. Relationships in EF 3.5 Trong EF 3.5, khi to cc Entities trong EDM th cc thuc tnh kha ngoi b b qua. Khng c a vo trong Entities. 3. Relationships in EF 4.0 C thm ty chn thm vo cc thuc tnh kha ngoi trong Entities. Chnh sa cc association v tham chiu d dng hn.

73

VII. Relationships v Associations (tt)S khc bit trong XML: khc vi EF 3.5, EF 4.0 th phn conceptual schema definition language (CSDL) c chia lm 2 phn: Phn u cha AssociationSet Phn hai cha thnh phn ReferentialConstraint

74

Q&A

75