Microsoft Corporation One Microsoft Way Redmond, WA, 98052, USA firstname.lastname@example.org
Microsoft Research One Microsoft Way Redmond, WA, 98052, USA email@example.com
Microsoft Corporation One Microsoft Way Redmond, WA, 98052, USA firstname.lastname@example.org
The ADO.NET Entity Framework provides a persistence layer for .NET applications that allows developers to work at a higher level of abstraction when interacting with data and data-access interfaces. Developers can model and access their data using a conceptual schema that is mapped to a relational database via a flexible mapping. Interaction with the data can take place using a SQLbased data manipulation language and iterator APIs, or through an object-based domain model in the spirit of object-to-relational mappers. We demonstrate how the Entity Framework simplifies application development using sample scenarios. We illustrate how the data is modeled, queried and presented to the developer. We also show how the provided data programming infrastructure can result in easier-to-understand code by making its intent more explicit, as well as how it can help with maintenance by adding a level of indirection between the logical database schema and the conceptual model that applications operate on. Categories and Subject Descriptors: H.2 [Database Management], D.3 [Programming Languages] General Terms: Algorithms, Management, Design, Languages Keywords: Data Programming, Conceptual Modeling, ADO.NET
support for the language-integrated query (LINQ ) mechanism in the upcoming version of C# and Visual Basic. Today, most enterprise data is stored in relational databases. The Entity Framework provides a flexible mechanism for mapping higher-level application models to existing relational schemas. It supports various persistence strategies and helps build new applications on top of legacy databases. A prerelease of the Entity Framework is available for download.
2. WHAT IS DEMONSTRATED
We demonstrate how the ADO.NET Entity Framework addresses various real-world issues that application developers often encounter when creating data-centric applications.
2.1 Working with a higher-level data model
In this section we demonstrate how a higher-level data model can help express the application semantics more explicitly. We start with the relational database schema shown in Figure 1.
SalesOrderID ContactID OrderDate AccountNumber TaxAmt TotalDue FK
ContactID FirstName LastName EmailAddress Title HireDate
A large number of commercial software applications written today are data-centric applications. Companies usually have several database server systems managing their business and operational information, and several applications built on top of them. Application developers in IT departments and software development companies face the challenge of creating and evolving data-centric applications in a fast and cost-effective manner. Some of these challenges can be addressed with tools that offer object-to-relational mapping (ORM) capabilities , although the majority of these tools are focused primarily on binding relational data to objects in specific programming languages and are not wellsuited for general-purpose database development. The ADO.NET Entity Framework  is a technology designed to elevate the level of abstraction at which application developers work when creating and maintaining data-centric applications. To achieve this goal, it focuses on three main areas: a) a higher-level data model for applications to operate on, b) an object services layer that exposes the application data through an object-oriented interface and processes create/read/update/delete operations on objects, and c) Copyright is held by the author/owner(s). SIGMOD’07, June 12–14, 2007, Beijing, China. ACM...