Anatomy of the ADO.NET entity framework

Atul Adya, José A. Blakeley, Sergey Melnik, S. Muralidhar
2007 Proceedings of the 2007 ACM SIGMOD international conference on Management of data - SIGMOD '07  
Traditional client-server applications relegate query and persistence operations on their data to database systems. The database system operates on data in the form of rows and tables, while the application operates on data in terms of higher-level programming language constructs (classes, structures etc.). The impedance mismatch in the data manipulation services between the application and the database tier was problematic even in traditional systems. With the advent of service-oriented
more » ... ctures (SOA), application servers and multi-tier applications, the need for data access and manipulation services that are well-integrated with programming environments and can operate in any tier has increased tremendously. Microsoft's ADO.NET Entity Framework is a platform for programming against data that raises the level of abstraction from the relational level to the conceptual (entity) level, and thereby significantly reduces the impedance mismatch for applications and data-centric services. This paper describes the key aspects of the Entity Framework, the overall system architecture, and the underlying technologies. Middleware mapping technologies such as Hibernate [8] and Oracle TopLink [33] are a popular alternative to custom data access logic. The mappings between the database and applications are expressed in a custom structure, or via schema annotations. While the mappings provide a degree of independence between the database and the application, the problem of handling multiple applications with slightly differing views of the same data, or of the needs of services which tend to be more dynamic are not well addressed by these solutions. This paper describes the ADO.NET Entity Framework, a platform for programming against data that significantly reduces the impedance mismatch for applications and data-centric services. It differs from other systems and solutions in the following regards: The Entity Framework defines a rich, value-based conceptual data model (the Entity Data Model, or the EDM), and a new data manipulation language (Entity SQL) that operates on instances of this model. This model is made concrete by a runtime that includes a middleware mapping engine supporting powerful
doi:10.1145/1247480.1247580 dblp:conf/sigmod/AdyaBMM07 fatcat:pffnelzhevam5ecbwnhgpngvci