Transcript
Page 1: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com
Page 2: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET ENTITY FRAMEWORK

Mike TaultyDeveloper & Platform GroupMicrosoft [email protected] http://www.miketaulty.com

Page 3: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Entity Framework – Key Facts

• Extension to the ADO.NET Provider Model– Pluggable to support any database

• Functionality– Abstracts a model from your store schema

– Offers Object Relational Mapping/LINQ and ADO.NET APIs

• Status– Coming in Visual Studio 2008 Sp1, Summer 2008

– Currently in VS 2008 Sp1 Beta 1

• 3 previous independent betas

Page 4: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET Entity Framework

SQL Provider Oracle Provider ...

Entity Provider

Conceptual Model

Store Model

Map

ADO.NET API ORM API

Connection

Command

DataReader

ObjectContext

ObjectQuery

Page 5: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET Entity Framework

SQL Provider Oracle Provider ...

ADO.NET API

Entity Provider

Conceptual Model

Store Model

Map

ORM API

Page 6: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

LINQ to SQL? LINQ to Entities?

LINQ to SQL LINQ to Entities

Database Support

SQL Server Many

Object Relational Mapping Capabilities

Simple Complex

Requires Attributed .NET Code

No Yes

Status Released Beta

Page 7: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

DEMOProgramming Entity Framework with LINQ

Page 8: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Key Classes

StateManagemen

t

Connectionprovide

r

MetadataMSL SSDLCSDL

CRUD

Page 9: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

LINQ to Entities – Lots of Topics

Page 10: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET Entity Framework

SQL Provider Oracle Provider ...

ADO.NET API ORM API

Entity Provider

Conceptual Model

Store Model

Map

Page 11: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

DEMOManipulating our Conceptual Model

Page 12: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET Entity Framework

SQL Provider Oracle Provider ...

ORM API

Entity Provider

Conceptual Model

Store Model

Map

ADO.NET API

Page 13: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

DEMOProgramming with Entity SQL and ADO.NET

Page 14: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

EF Providers in ProgressVendor DB Support

Microsoft SQL Server

Core Lab Oracle, MySQL, PostgreSQL, SQLite

IBM DB2, Informix Dynamic Server

MySQL AB MySQL

Npgsql PostgreSQL

OpenLink Many via OpenLink ODBC or JDBC

Phoenix SQLite

DataDirect Oracle, Sybase, SQL Server, DB2

Firebird Firebird

Page 15: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Resources

• New Data Developer Site– http://www.datadeveloper.net

• ADO.NET Team Blog– http://blogs.msdn.com/adonet

• My website – http://www.miketaulty.com ( search Entity )

Page 16: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET ENTITY FRAMEWORK

Mike TaultyDeveloper & Platform GroupMicrosoft [email protected] http://www.miketaulty.com

Page 17: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com
Page 18: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET Today

App CodeApp Code

Customers

ADO.NETADO.NET

ProvidersProviders

SQL ServerSQL Server

OracleOracle

......

DataReaderDataReader

Customers

OracleOracle

CommandCommand

ExecuteExecute

Provider Specific Provider Specific (PL/SQL)(PL/SQL)

““SELECT * FROM SELECT * FROM CUSTOMERS”CUSTOMERS”

Customers

Page 19: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET Entity Framework

Customers

Conceptual ModelConceptual Model

UKCustomer

UKPremiumCustomer

MapMap

Page 20: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

ADO.NET Entity Framework

App CodeApp Code

Customers

ADO.NETADO.NET

ProvidersProviders**

SQL ServerSQL Server

OracleOracle

......

OracleOracle

EntityEntityProviderProvider

DataReaderDataReader

UKCustomer

CommandCommand

ExecuteExecute

Conceptual ModelConceptual Model

UKCustomer

UKPremiumCustomer

MapMap

Provider Agnostic Provider Agnostic (ESQL)(ESQL)

““SELECT * FROM UKCUSTOMER”SELECT * FROM UKCUSTOMER”

UKCustomer

Page 21: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

.NET Entity Provider (Entity SQL)

Command

ConnectionReader

EF

ADO.NET Entity Framework

Store

.NET Data Provider

V2.0

Command

ConnectionReader

Adapter

EF

Conceptual Model

Entity Entityrelationship

Mapping (MSL)

EF

Programming Model

Object Relational Mapping

LINQ

Page 22: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Programming with Entity SQL

• The EntityClient provides the usual– Connection, Command, DataReader

• There is no EntityDataAdapter – V1.0 the model is read-only

• Entity SQL has some additional constructs to expose the underlying conceptual model

Page 23: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

DEMOProgramming with Entity SQL

Page 24: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Mapping Examples ( 1 – Splitting )Store

Good CustomersGood Customers

IDFirstNameLastName

Bad CustomersBad Customers

IDForeNameSurname

Customers

Customers

CustomerIdFirstLastType

EntitiesMapping

Type=“G”

Type=“B”

Page 25: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Mapping Examples ( 2 – TPH )Store

CustomerCustomer

CustomerId

First

Last

EntitiesMapping

Customers

Customers

ID

FirstName

LastName

IsPremium

Overdraft

AccountManager PremiumCustomer

PremiumCustomer

Overdraft

AccountManager

?

* Framework also supports TPT

Page 26: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Mapping Examples ( 3 – View + SPs )Store

UkCustomerUkCustomer

CustomerId

Name

EntitiesMapping

ClientView1ClientView1

select c.id, c.namefrom customers cwhere c.country = ‘UK’

p_DeleteUkCustomerp_DeleteUkCustomer

p_UpdateUkCustomerp_UpdateUkCustomer

p_InsertUkCustomerp_InsertUkCustomer

Page 27: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

DEMOQuerying Different Models with Entity SQL

Page 28: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

Programming with LINQ to Entities• New Data Access ORM API implemented in assembly

– System.Data.Entity.dll• Many Namespaces

– System.Data.Entity– System.Data.Objects– ...

• Object Relational Mapping API can be used with or without LINQ

Page 29: ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK Mike.Taulty@microsoft.com

DEMOProgramming with LINQ to Entities


Top Related