Philip Hendry's Blog

August 4, 2009

ADO.NET Entity Framework

Filed under: Entity Framework — philiphendry @ 12:39 pm

Random Thoughts

EDM Generator (EdmGen.exe) validates and generates an Entity Data Model (EDM) from an existing database. Mapping will be one-to-one. Available in .NET Framework 3.5 SP1.

Available in VS2008 SP1 :

  • Entity Data Model Wizard
  • Entity Designer
  • Update Model Wizard

Entities are required to have keys. If not the generation tool will infer one (generating a DefiningQuery element in the store schema rendering it read-only until manually confirmed and the element is removed.)

Tables representing many-to-many relationships will not be generated as an entity rather a relationship.

See Entity Framework Terminology.

The Conceptual Model

An EDM schema defining entities and associations called the Conceptual Schema Definition Language (CSDL.) Each entity has : a name, a key and a set of properties (of type simple, scalar or complex and can be nullable or have a default value.)

The Storage Model

Uses Store Schema Defintion Language (SSDL) to define the logical model for persistent data. The types used are of those from the storage model (e.g. SQL Server.)

The Mapping Specification

Uses Mapping Specification Language (MSL) to connect conceptual types to the storage model.

Architecture

The following diagram highlights how EF integrates with ADO.NET Data Providers and where developer interaction occurs. There are three methods for generating queries against the EDM :

  • Entity SQL
  • Language-Integrated Query (LINQ)
  • Object query builder methods

Entity Framework Architectural Diagram

Working with Entity Data

Referenced objects are not automatically loaded and therefore the Load method on the EntityReference (for one-to-one relationship) or the EntityCollection (for a one-to-many relationship) must be called to load the related data into the object context. An alternative is to specify a query path that defines the related object to load.

No Comments Yet »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Blog at WordPress.com.