Yesterday the ADO.NET team announced Beta 2 of the much anticipated Entity Framework and support tools. Whilst the initial impressions from using the new designer were good, it quickly became evident that the necessary “back-to-the-drawing-board” has really cost the team.
For example in previous CTPs you could convince the framework to talk with a SQL Server Compact Edition database by simply modifying the app.config file – this no longer works. Connecting to the AdventureWorks database mostly works but there are fields that it fails to wire up correctly.
Interestingly enough, in previous versions the entity framework was driven by model files with code being dynamically generated straight into an assembly. In this beta a designer file is generated which contains the class definitions. Also, the three model files have now been combined into a single .edmx file, although the three sections are still evident in the xml schema.
Imho the whole entity framework doesn’t go far enough – there should be a divide between your class model (ie what gets compiled into your assembly) and your data model (ie what is in the database and might need to be changed in isolation from your application). The latter should be deployed with your application and the entity framework should dynamically load the mapping between the data store and your classes at runtime. This would decouple your application from any schema changes such that any change would simply require a change to the mapping.