Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿...

27
Entity Framework 4.1

Transcript of Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿...

Page 1: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 4.1

Page 2: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

:Entity Framework 4.1

: :

:

:90

:1000

:

:

:7800CD :8-76-2989-964-978

**

:1364-

:Entity Framework 4.1. /

: : :1390.

:272. :.

:978-964-2989-76-8:78000

:

:

:

:--

:QA76/76/232 1390

:005/3

:2391320

:1416www.pendarepars.com

:66572335- :66926578 :09122452348 [email protected]

Page 3: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

1 ENTITY FRAMEWORK........................................................3

Entity Framework...................................................................................4

!.....................................................................6

Entity Framework..............................................................................8

...................................................................................................9

.......................................................................................9

..............................................................................................10

...............................................................................................13

Entity Framework 4.0.......................................................................15

POCO.........................................................................................16

Model First.........................................................................16

Deffered Loading.......................................................................16

LINQ to Entities...............................................16

......................................................................17

Complex................................................................................17

.NET.................................................................17

Model Browser.......................................................18

..............................................................................18

2 ENTITY DATA MODEL.....................................................................21

EDM..................................................................................................21

Database First.........................................................................................22

.......................................................26

Page 4: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Model First.............................................................................................28

..................................................................................................34

.........................................................................................38

Code Only..............................................................................................39

3 ENTITY DATA MODEL................................................43

EDM Designer................................................................................................43

Designer..........................................................................................43

Model Browser................................................................................45

Mapping Details..............................................................................46

........................................................................................................47

Scalar Properties.........................................................................................48

TypeComplex............................................................................................49

Complex..................................................................................49

Complex...............................................................................49

)Foreign Keys ()Associations(...............................54

Navigation Properties.................................................................................55

Mapping Details..................................................................................56

EDM...........................................................................................57

EDM......................................................................................59

SSDL.................................................................................................59

EntityType......................................................................................60

Association.....................................................................................61

CSDL.................................................................................................62

EntityType.......................................................................................63

Page 5: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Association.....................................................................................65

MSL...................................................................................................65

EDM.............................................................................67

4 EDM...................................................................................73

Entity Framework.............................................................................73

Syntax...........................................................................74

Query Syntax..............................................................................................74

Context........................................................................................................78

Method Syntax............................................................................................79

.............................................................................81

LINQ to Entities.........................................................................................81

Entity SQL..................................................................................................88

EntityClient.................................................................................................90

EntityConnection...........................................................................91

EntityCommand.............................................................................93

)Immediate ()Deferred (...................93

)Deferred(...................................................................................94

)Immediate(................................................................................96

5 ................................................................................99

ObjectContext.................................................................................................99

ObjectStateEntry........................................................................................100

................................................................................101

SaveChanges.....................................................105

............................................................................................108

Page 6: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

......................................................................................111

..........................................................................113

...............................................................................................116

6 STORED PROCEDURE.................................................................119

Stored ProcedureEDM..........................................................................119

Model Browser...................................................................................125

EF................................................................................126

T-SQLEFCUD..................................................127

)SP (...........................................................................................132

.........................................................................................132

..................................................................................................134

..................................................................................................135

.............................................................................................136

)SP (......................................................................137

7 ..........................................................................141

...............................................................................................................141

.......................................................................................142

EF 3.5.......................................................................................143

EF 4.0...........................................................................................145

Windows Forms Application......................................146

.......................................................................................148

EDM Designer.....................................................................149

...................................................................150

...........................150

Page 7: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

..............................................................152

.......................154

..................................................................................................155

8 T4....................................................................................159

T4......................................................................................159

T4Visual Studio 2008.........................................159

T4...................................................................................160

T4................................................................................................161

.........................................................................................165

:................................................................................167

:.........................................168

:SQL Server.........................170

T4EF.............................................................................................172

T4EF..........................................................178

9 MODEL FIRST........................................................................181

ModelFirst................................................................................181

......................................................................................182

Model First...........................................................184

Navigation Property........................................................186

..................................................................................................188

..................................................................................188

Complex.............................................................................195

DDL.............................................................................198

10 CODE ONLY.........................................................................205

Page 8: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

.......................................................................................................206

.......................................................................209

................................................................................................210

.........................................................................211

..........................................................................................................214

................................................................217

DataAnnotation..........................................................218

Entity Framework Power Tools...........................................................228

11 WCF DATA SERVICES.......................233

WCF Data Service...................................................235

WCF Data Service....................................................241

WCF Data Service............................................249

............................................................................................250

.............................................................................................254

Page 9: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

-

.

.

-

.

.

LINQ to SQLEntity Framework .Entity Framework

ADO.NET.

Entity

Framework.

[email protected].

Page 10: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq
Page 11: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

1

Entity Framework

2008Entity FrameworkVisual

Studio 2008 Service Pack 1.NET Framework 3.5 Service Pack 1 .

LINQLINQ to SQL.

Entity FrameworkLINQ to SQL

.

.

Relational Data

. .""

"" .""""

.

Entity

FrameworkLINQ to SQL

Entity Framework.

:

1.Entity Framework

.

2.Entity Framework 4.0 & 4.14.0

Visual Studio 2010.

:

1.Entity Framework.

Page 12: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 4

2.Entity Framework

4.04.1.

Entity Framework

)Data Access . (Entity

FrameworkADO.NET

)Conseptual Model (

ClassProperty.

Entity Framework

Entity Framework

.

ADO.NET .

ADO.NETRDODAO .

ADO.NET

.

ADO.NET.NETADO.NET

.DataReader

DataSet.

ADO.NET

.

.

.AdventureWorks

.http://msftdbprodsamples.codeplex.com.

:

1.

2."yes, we have rows"

Page 13: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 5

try

{

string connectionString = Class1.GetConnectionString();

using (SqlConnection conn = new SqlConnection(connectionString))

{

conn.Open();

using (SqlCommand cmd = new SqlCommand())

{

cmd.Connection = conn;

cmd.CommandText = "SELECT FirstName, MidName, LastName

FROM Person.Contact WHERE ContactID = @ContactID";

SqlParameter param = new SqlParameter("@ContactID",

SqlDbType.Int, 50, "ContactID");

param.Value = 8;

cmd.Parameters.Add(param);

SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())

{

Console.WriteLine(String.Format("{0}, {1}",

rdr[0], rdr[1]));

}

}

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

Click

MidName

.MiddleName

.

.

Page 14: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 6

.

.

.

.

MidName

MiddleName .

.

Entity Framework .Entity Framework

DataReaderDataSet.

!

Entity Framework

.

:

1.ERM (Entity Relationship Model) :

.

2.UML (Unified Modeling Language) :

.

3.ORM (Object-Relational Mapping) :

.

4.DFD (Data Flow Diagram) :

.

Page 15: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 7

.

ERM

UML .UML

ERM.

ERM

Entity Framework: .

1.NHibernate :HibernateJava.NET

.

2.SPRING.Net :Spring

Java.NET .

ERM

.

Entity Framework .

Entity Framework

ERM

ERMUML.

Entity Framework

DataReaderDataSet

.Entity Framework

ORM

Entity FrameworkORM . .

Entity FrameworkORMORM

.

Page 16: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 8

Entity Framework

Entity FrameworkADO.NET

.

Property .

Property

.

"")Customer(

"")Product (.

ProductProperty

Customer .

CustomerProperty

.

Property

Customer

Customer .""

. -

.LINQ

Entity Framework .

.

.

.

Entity Framework .Entity

Framework)Stored ProcedureView (

.

Page 17: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 9

.

.

.Visual

Studio.NET.NET

IntelliSense

.

Entity FrameworkMidName

.

Entity Framework

.

.

DataReaderDataSetEntity Framework .

Entity Framework

Entity Framework

.

DataReaderDataSet

.

:

Entity Framework :

)Conseptual) (Logical) (Physical .(

3.

Page 18: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 10

using (SqlConnection conn = new SqlConnection(@"Data

Source=(local);Initial Catalog=AdventureWorks;UID=sa;PWD=pwd"))

{

conn.Open();

using (SqlCommand cmd = new SqlCommand())

{

cmd.Connection = conn;

cmd.CommandType = CommandType.Text;

cmd.CommandText = "SELECT FirstName, MiddleName, LastName

FROM Person.Contact WHERE LastName = @LastName";

cmd.Parameters.Add(new SqlParameter("@LastName",

System.Data.SqlDbType.NVarChar)).Value = "Behrouz";

using (SqlDataReader rdr = cmd.ExecuteReader())

{

if (rdr.HasRows)

{

rdr.Read();

//

}

}

}

}

)

( ..

Entity Framework .

( )

) (Entity Framework.

Page 19: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 11

Entity Data ModelEDM .EDM

Entity Framework

: .EDM

ERM .EDM.Entity

Framework

.1 -1AdventureWorks

.3 :ContactEmployeeAdditionalContactInfo .

Contact .Employee

.AdditionalContactInfo

.ContactID.

1-1 :

.

.

:

SELECT c.FirstName, c.LastName, e.Title, e.HireDate, aci.CellPhone,

aci.EmailAddress

FROM Contact c

INNER JOIN AdditionalContactInfo aci ON c.ContactID = aci.ContactID

INNER JOIN Employee e ON c.ContactID = e.ContactID

Page 20: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 12

EDMEntity Framework

.EDM

.

Entity Framework

BLL.

EDMEntity Framework""

2-1.

2-1 :

LINQ:

from c in Contact.TypeOf<Employee> select c;

Entity Framework

.2EDM

.

Entity FrameworkEntity

Data ModelEDM.

Page 21: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 13

Entity Framework

"Entity" .Entity""

."""" .Entity

Framework

Entity .2-1

Entity .4

Entity FrameworkEDM

.

: .

.

PropertyProperty .

PropertyPhoneint.

PropertyEntityPropertyEntity .

Entity.

Entity .

EntityIdentity.

Property)Method (

.

: .

.

.

(Primary Key)

.

.

:

Page 22: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 14

PropertyComplex.Property

Complex.

.

.

.

EDM .

.2-1 .

Entity Framework

.

EDM

Designer.

3-1 :

LINQ

.3 -1

Entity Framework .EDMDesigner

.3 -1

Page 23: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 15

Navigation Property .

EmployeeContact .

EmployeeContactNavigation PropertyContact

Employee

Employee .Navigation Property

.

Entity Framework 4.0

Entity

Framework 4.0 .Entity

Framework3.5.

POCO)Plain Old CLR Objects(

Model First

Navigation PropertyDeffered Loading

LINQ to Entities .

.Category

Categories

Complex

.NETEntity Framework

Model Browser

.

.

Page 24: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 16

POCO

.Entity Framework

.POCO.

Model First

EDM Designer

.

Deffered Loading

Deffered LoadingLazy Loading

Navigation Property

.

Contact

Contact

Connection

. .

LINQ to Entities

Entity Framework .

Stored ProcedureUser Defined Function.

SqlFunctionsEntityFunctionsEntity Framework 4.0

.AttributeEdmFunctionAttribute

Page 25: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 17

Stored ProcedureUser Defined Function

.5.

.

CategoryCategories .

Entity Framework-

""

Categories .Entity Framrework

Navigation Property

Entity Framework 4.0

.

Complex

ComplexEntity Framework 4.0 .

ComplexProperty

Property .Complex

.Complex

AddressPropertyStreet1Street2Property

.Complex3.

.NET

Entity Framework

.Entity Framework 4.0

.

Page 26: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

Entity Framework 18

Model Browser

Model Browser

.:

Property

.2.

Entity Framework

.

Entity FrameworkProvider .Provider

.

1.EntityClientEntity Framework

EDM .Provider

SqlClientProviderSQL Server

SQL Server.

2.SQL Provider.NETSQL Server

.

Entity FrameworkADO.NET Data Provider

.Provider

ADO.NET Data Provider .

Provider

Entity Framework:

Oracle

MySql

Page 27: Z¯ m » Entity Framework 4 · Entity Framework 4.1 ¶»Z¯ m »: [Zf¯¹Z¿ ʸ¿Z»: Z°¼Å Z¿ Za Y|ÀacY Z f¿Y: Z¿ {Y Á Æ] |ÀÆ» Áļm e: ¦Ì·Ze 90 ½Zf ]Ze: µÁY_Zq

/ Entity Framework 19

PostgreSQL

SQL Anywhere

DB2

Informix

U2

Ingres

Progress

Firebird

Synergy

Virtuoso

Entity Framwork.

:

http://msdn.microsoft.com/en-us/data/dd363565.aspx

Provider .Connection StringProvider

Provider .SQL

LINQ to EntitiesEntity SQLCRUD

SQL

Provider . .

!

CRUDCreateRetrieveUpdateDelete

( ).

SQL Server 2008SqlClientProvider

.ProviderSQL Server)200020052008 (

.SQL Server Compact Edition.