ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK [email_address]   http://www.miketaulty.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
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
ADO.NET Entity Framework SQL Provider Oracle Provider ... ADO.NET API Entity Provider Conceptual Model Store Model Map ORM API
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
DEMO Programming Entity Framework with LINQ
Key Classes State Management Connection provider Metadata MSL SSDL CSDL CRUD
LINQ to Entities – Lots of Topics
ADO.NET Entity Framework SQL Provider Oracle Provider ... ADO.NET API ORM API Entity Provider Conceptual Model Store Model Map
DEMO Manipulating our Conceptual Model
ADO.NET Entity Framework SQL Provider Oracle Provider ... ORM API Entity Provider Conceptual Model Store Model Map ADO.NET API
DEMO Programming with Entity SQL and ADO.NET
EF Providers in Progress Vendor 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
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 )
ADO.NET ENTITY FRAMEWORK Mike Taulty Developer & Platform Group Microsoft UK [email_address]   http://www.miketaulty.com
 
ADO.NET Today App Code Customers ADO.NET Providers SQL Server Oracle ... DataReader Customers Oracle Command Execute Provider Specific (PL/SQL) “ SELECT * FROM CUSTOMERS” Customers
ADO.NET Entity Framework Customers Conceptual Model UKCustomer UKPremiumCustomer Map
ADO.NET Entity Framework App Code Customers ADO.NET Providers* SQL Server Oracle ... Oracle Entity Provider DataReader UKCustomer Command Execute Conceptual Model UKCustomer UKPremiumCustomer Map Provider Agnostic (ESQL) “ SELECT * FROM UKCUSTOMER” UKCustomer
ADO.NET Entity Framework .NET Entity Provider (Entity SQL) Command Connection Reader EF Store .NET Data Provider V2.0 Command Connection Reader Adapter EF Conceptual Model Entity Entity relationship Store Model (SSDL) Entity Data Model (CSDL) Mapping (MSL) EF Programming Model Object Relational Mapping LINQ
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
DEMO Programming with Entity SQL
Mapping Examples ( 1 – Splitting ) Mapping Type=“G” Type=“B” Store Good Customers ID FirstName LastName Bad Customers ID ForeName Surname Customers CustomerId First Last Type Entities
Mapping Examples ( 2 – TPH ) Store Entities Mapping PremiumCustomer Overdraft AccountManager * Framework also supports TPT Customer CustomerId First Last Customers ID FirstName LastName IsPremium Overdraft AccountManager ?
Mapping Examples ( 3 – View + SPs ) Store Entities Mapping ClientView1 select  c.id, c.name from  customers c where  c.country = ‘UK’ p_DeleteUkCustomer p_UpdateUkCustomer p_InsertUkCustomer UkCustomer CustomerId Name
DEMO Querying Different Models with Entity SQL
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
DEMO Programming with LINQ to Entities

ADO.NET Entity Framework DevDays

  • 1.
  • 2.
    ADO.NET ENTITY FRAMEWORKMike Taulty Developer & Platform Group Microsoft UK [email_address] http://www.miketaulty.com
  • 3.
    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
  • 4.
    ADO.NET Entity FrameworkSQL Provider Oracle Provider ... Entity Provider Conceptual Model Store Model Map ADO.NET API ORM API Connection Command DataReader ObjectContext ObjectQuery
  • 5.
    ADO.NET Entity FrameworkSQL Provider Oracle Provider ... ADO.NET API Entity Provider Conceptual Model Store Model Map ORM API
  • 6.
    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
  • 7.
    DEMO Programming EntityFramework with LINQ
  • 8.
    Key Classes StateManagement Connection provider Metadata MSL SSDL CSDL CRUD
  • 9.
    LINQ to Entities– Lots of Topics
  • 10.
    ADO.NET Entity FrameworkSQL Provider Oracle Provider ... ADO.NET API ORM API Entity Provider Conceptual Model Store Model Map
  • 11.
    DEMO Manipulating ourConceptual Model
  • 12.
    ADO.NET Entity FrameworkSQL Provider Oracle Provider ... ORM API Entity Provider Conceptual Model Store Model Map ADO.NET API
  • 13.
    DEMO Programming withEntity SQL and ADO.NET
  • 14.
    EF Providers inProgress Vendor 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
  • 15.
    Resources New DataDeveloper Site http://www.datadeveloper.net ADO.NET Team Blog http://blogs.msdn.com/adonet My website  http://www.miketaulty.com ( search Entity )
  • 16.
    ADO.NET ENTITY FRAMEWORKMike Taulty Developer & Platform Group Microsoft UK [email_address] http://www.miketaulty.com
  • 17.
  • 18.
    ADO.NET Today AppCode Customers ADO.NET Providers SQL Server Oracle ... DataReader Customers Oracle Command Execute Provider Specific (PL/SQL) “ SELECT * FROM CUSTOMERS” Customers
  • 19.
    ADO.NET Entity FrameworkCustomers Conceptual Model UKCustomer UKPremiumCustomer Map
  • 20.
    ADO.NET Entity FrameworkApp Code Customers ADO.NET Providers* SQL Server Oracle ... Oracle Entity Provider DataReader UKCustomer Command Execute Conceptual Model UKCustomer UKPremiumCustomer Map Provider Agnostic (ESQL) “ SELECT * FROM UKCUSTOMER” UKCustomer
  • 21.
    ADO.NET Entity Framework.NET Entity Provider (Entity SQL) Command Connection Reader EF Store .NET Data Provider V2.0 Command Connection Reader Adapter EF Conceptual Model Entity Entity relationship Store Model (SSDL) Entity Data Model (CSDL) Mapping (MSL) EF Programming Model Object Relational Mapping LINQ
  • 22.
    Programming with EntitySQL 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
  • 23.
  • 24.
    Mapping Examples (1 – Splitting ) Mapping Type=“G” Type=“B” Store Good Customers ID FirstName LastName Bad Customers ID ForeName Surname Customers CustomerId First Last Type Entities
  • 25.
    Mapping Examples (2 – TPH ) Store Entities Mapping PremiumCustomer Overdraft AccountManager * Framework also supports TPT Customer CustomerId First Last Customers ID FirstName LastName IsPremium Overdraft AccountManager ?
  • 26.
    Mapping Examples (3 – View + SPs ) Store Entities Mapping ClientView1 select c.id, c.name from customers c where c.country = ‘UK’ p_DeleteUkCustomer p_UpdateUkCustomer p_InsertUkCustomer UkCustomer CustomerId Name
  • 27.
    DEMO Querying DifferentModels with Entity SQL
  • 28.
    Programming with LINQto 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
  • 29.
    DEMO Programming withLINQ to Entities