Entity Data Model

The Entity Data Model (EDM) is a specification for defining the data used by applications built on the Entity Framework. Applications using the EDM define entities and relationships in the domain of the application in a design schema. The design schema is used to build programmable classes used by application code. Storage structures that persist data for applications in this model are represented in another schema called the storage schema. A mapping specification connects the design schema and the storage schema.

Because the programmable object model is built from the design schema and the storage schema is mapped to the design schema, the mapping specification effectively connects programmable classes to storage structures. Entities defined by the EDM can be read in serialized form by using a data reader or materialized as objects. Materialized objects are programmable in CLR languages and are updated and saved without embedded SQL strings or other database syntax. The EDM supplies the basic entity and relationship types used in EDM schemas and the mapping specification. Developers extend these types as necessary to support application design.

The several paradigms used to manage data in applications all have important strengths. The storage model is optimized for efficient storage and retrieval. XML supports data exchange across platform boundaries. Object-oriented programming is the accepted standard for application development. These models are all useful, but transferring data between or among them can require many lines of code that have nothing to do with application scenarios.

A data model can be an analysis in unified modeling language (UML) or diagrams on a whiteboard. By whatever method, data types, their attributes, the relationships between data types, the constraints on data, and so on, must be organized conceptually before they can be implemented in application code. The EDM extends the models that application designers use to describe data during the development process and provides an XML syntax to detail the results in schematic form.

In This Section