What's New in the SP1 Beta?

 This morning we announced the availability of the Visual Studio 2008 and .NET Framework SP1 Beta releases, and now you're probably wondering... well what's changed? Here goes...

Across the Entity Framework we have made numerous bug fixes (more than 200 of them). We've also made some significant documentation enhancements and exception message improvements to the Entity Framework.

You'll notice significant improvements specifically to the Entity Designer, where we made many of changes that you, our customers, had submitted to us over the last few months. You'll also notice a number of improvements to the Entity Framework Runtime including support for the new SQL Server 2008 types as specified below, query improvements and the introduction of the new EntityDataSource. Check out the lists below for a full description of changes.

 

Entity Designer

  • EDMX file format changes
    • The EDMX file has changed in this release and has been reorganized to have the designer section at the end
    • Users can no longer have an EDMX file open in the Entity Designer and the XML Editor at the same time

NOTE: As a result of these changes, EDMX files from older releases will need to be regenerated in this version of the Entity Designer

  • Update Model from Database
    • The current release improves this functionality and adds better support for iterative development scenarios. Among other improvements, it better handles new database tables and columns added to the database. It also accounts for entity type and property renames in the conceptual model and detects certain inheritance and mapping changes
    • The overall usability of the Update Model from Database wizard has also been improved based on feedback.
  • Printing and print preview
    • Conceptual models can be previewed and printed using the standard “File…Print” menu in Visual Studio
  • Getting around in the designer
    • Context menus have been organized to make common user tasks easier to use and discover
    • “Table Mapping” and “Stored Procedure Mapping” context menus added
    • Mini-toolbar on the scroll bar to quickly zoom, pan and navigate to an specific part of the diagram
  • UX and usability improvements
    • Improved validation error messages
    • Improved error navigation when double-clicking errors
    • Enhancements to property window contents for navigation properties to show association ends
    • F1 Help
    • Cut/Copy/Paste improvements for entity and properties
  • We fixed over 200 issues reported by customers since our Dec 2007 release. Here’s a bird’s eye view of the bugs fixed:
    • Bug with running the wizard when App/Web Config was open is fixed
    • Various mapping bugs are fixed
    • Much better support for mapping in TPH and TPT inheritance scenarios, better support for mapping stored procedures and better support for abstract types and hybrid mapping scenarios
    • Better build support; clean, rebuild, build all work better
  • Support for generating model & mappings from SQL Compact 3.5 SP1 databases

SQL 2008 Support

  • Full support for new Katmai data types: Date, DateTime2, DateTimeOffset and Time
  • Partial support (non-streaming only) for new Katmai FileStream data type

Metadata

  • Ability to have metadata files to come from any stream rather than just disk files
  • Change SQL Server provider manifest tokens to a human-understandable format (e.g. 2008, 2005, 2000)
  • Explicitly bind SSDL to a specific provider
  • Facets refactoring in CSDL

Query Improvements

  • Queries can now be compiled without an open connection
  • Simplification of generated store queries (e.g. less tables are joined for certain queries)

EntityClient

  • Exception refactoring in EntityClient
  • Big performance improvement on EntityClient result materialization
  • DbFunctionCommandTree introduced for non-SQL Server providers to handle retrieval through stored procedures

Object Services

  • Non-generic ObjectQuery base class with common services (e.g. ToTraceString, MergeOption)
  • Non-generic ObjectResult base class for generalized query handlers
  • DataContract full graph serialization and DataContract serialization of EntityReference and EntityCollections
  • OnContextCreated() partial method allows business logic hooks after ObjectContext creation
  • Improvements to RelationshipManager.GetAllRelatedEnds() to return all RelatedEnds even if they have not been previously accessed
  • Non-generic EntityReference base class helps to distinguish between EntityCollection and EntityReference without using reflection and provides access to the EntityReference.EntityKey
  • ObjectStateManager.GetObjectStateEntry(object entity) and ObjectStateManager.TryGetObjectStateEntry(object entity) methods were added back

LINQ to Entities

  • Support for EntityCollection.Count in queries
  • Improvements in using query span in combination with LINQ and CompiledQuery
  • Support for queries that test equality or group on an entity value
  • Circular reference detection in queries

EntityDataSource for ASP.NET

  • Declarative ASP.NET 2-way databinding against EDM
  • Design time support
  • Flattening of complex types and EntityReference keys
  • ASP.NET Dynamic Data Support

 

- The ADO.NET Team

Comments

  • Anonymous
    May 12, 2008
    Todos sabreis a estas alturas que el Service Pack 1 de Microsoft Visual Studio 2008 ha aparecido en versión

  • Anonymous
    May 12, 2008
    ADO.NET team blog : What's New in the SP...

  • Anonymous
    May 12, 2008
    Just links.... ScottGu Soma Entity Framework Data Services Download

  • Anonymous
    May 13, 2008
    В блоге ADO.NET команды есть подробная информация о перечне изменений, которые затронул SP1 Beta в EntityFramework

  • Anonymous
    May 13, 2008
    As it was announced today , the EntityDataSource is now part of Entity Framework, and a first beta version

  • Anonymous
    May 13, 2008
    It's great to see a lot of the work that has been going on in our product unit finally get into the hands

  • Anonymous
    May 13, 2008
    It's good to see all of these changes in SP1. One more thing I could suggest is:

  • add some functionality of designer from SQL Server. I mean about create of small subsets of diagrams which work on base model diagram. It could be like diagram view. Working with one big model diagram with about 50 - 100 or more entities is hard. Maybe some kind of grouping entities in diagram could also help - with collapse/expand function. Apart all of this - thanks for Your work.
  • Anonymous
    May 13, 2008
    "Update Model from Database" is nice, but what about the other way around? When I don't have to deal with legacy DBs, I'd much prefer to generate the (presumably optimal) database schema from my entity model, not the other way around - and have the former automatically updated when I edit the latter.

  • Anonymous
    May 13, 2008
    Congratulations, well done! Jamal Mavadat

  • Anonymous
    May 13, 2008
    La Beta de VS 2008 SP1 Beta apporte beaucoup de nouveautés ( cf post de Scott Guthrie ) mais quand est-il

  • Anonymous
    May 13, 2008
    Any chance of introducing an option for transparent lazy loading of relationships before RTM?  A configuration option baked into framework that did something like this would be absolutely fantastic: http://blogs.msdn.com/jkowalski/archive/2008/05/12/transparent-lazy-loading-for-entity-framework-part-2.aspx Having it as an option would make some scenarios a lot easier, especially for users migrating from LINQ to SQL or other O/RMs that support the transparent loading of relationships.

  • Anonymous
    May 13, 2008
    Just a quick note to point out a few interesting things about the updated version of the EF which shipped

  • Anonymous
    May 14, 2008
    I don't want to discourage any of you from the tremendous work you're doing--there's no doubt that the Entity Framework will be groundbreaking--however, if the ADO.NET EF does not support some fundamental requirements for Domain Driven Design, I'm afraid I'm going to have to continue using an alternative solution such as NHibernate. The EF will no doubt shine in the following respects:

  • Powerful and strongly-typed query support via LINQ
  • Sophisticated mapping of objects to tables
  • Support for multiple databases This by itself is a mouthful and you all deserve a lot of credit for your hard work in this space. I'm sure few of us appreciate how difficult your work has been. Nevertheless, there are several other key ingredients that must be in place before I (and others) will be able to move to the ADO.NET EF:
  • Object-first development. The pattern I keep noticing with both LINQ to SQL and LINQ to Entities is one where we begin with the database and then use it to generate objects. But because it is the objects that are truly the heart of our software (and not the database, which is merely the cold persistence of our objects), I (and many others) find it much more useful to turn it the other way around, beginning with our objects, specifying a mapping, and then generating the database. I don't disagree that database-first development is an important scenario to have in the EF package, but without support for objects-first development I simply won't be moving to the EF.
  • Pure POCO development in the domain layer. Along the same lines as the previous point, if the EF significantly restricts what I can or cannot do in designing my domain objects (such as requiring that I inherit from base classes or implement interfaces, etc.), I will continue using an ORM tool that doesn't hinder my ability to model the business domain.
  • Automatic change-tracking without the need to be connected to the database while domain objects are being modified. For n-tier and web scenarios it is extremely important that we be able to work with our objects without having to be connected to the database and without the need for complicated re-attachment code. The community outcry over LINQ to SQL’s shortcomings in this area is enough to ensure that the ADO.NET EF will receive a similar loathing if it is not substantially better. We need the EF to allow us to connect-load-disconnect, change our objects, and then connect-save-disconnect, all without any pain. Please forgive me if I have misrepresented what the EF does and does not support. If you have already addressed any of these points or if you are planning to before RTM, my sincere apologies. But from all I've read I'm left with the impression that the object-first, POCO, disconnected-development model will not be supported in EF version 1.0. If that's not true I'm sure there are other people like myself who would appreciate some clarification. In any case, perhaps you can clarify which of these points the EF supports, which it doesn't, and what your future plans are. You guys are doing great stuff; we just want to use it! Once the ADO.NET EF supports the development model I've outlined above I think you'll see a swell of support. I can understand if you can't do it by version 1.0, but we'd sure like to know how much thought you're giving to Domain Driven Design and what your commitments are to this development philosophy. Thanks much, Adam Cooper
  • Anonymous
    May 14, 2008
    The comment has been removed

  • Anonymous
    May 14, 2008
    Hi Adam, Thank you for your feedback. We have definately received this message from many of our customers who are using Domain Driven Development techniques, and although it did not fit into V1 of the Entity Framework, it is a large part of our planning for V2. At this point, we are still in the planning stages and cannot say for sure what we will tackle in V2, but we are working with these customers to ensure that we tackle this scenario in the best way possible. Thank you, Elisa Flasko - PM Data Programmability

  • Anonymous
    May 14, 2008
    En plus de ce post j'ai référencé avant-hier celui-ci

  • Anonymous
    May 14, 2008
    The ADO.NET team details on its blog what has changed for LINQ to SQL with the release of Visual Studio

  • Anonymous
    May 14, 2008
    The ADO.NET team details on its blog what has changed for LINQ to SQL with the release of Visual Studio

  • Anonymous
    May 14, 2008
    The ADO.NET team details on its blog what has changed for LINQ to SQL with the release of Visual Studio

  • Anonymous
    May 14, 2008
    ScottGu's - Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx

  • Anonymous
    May 15, 2008
    I have installed the SP1 Beta, but i dont see the Entity Framework Model in the Add new Item. Could you help please

  • Anonymous
    May 15, 2008
    Please take a look at forum thread: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3347714&SiteID=1 So far we have not received any resolution on the setup issue for the EF. Thanks.

  • Anonymous
    May 15, 2008
    Link doesnt seem to help in solving the problem

  • Anonymous
    May 18, 2008
    In the last days has been released the beta version of Visual Studio 2008 Service Pack 1, including a

  • Anonymous
    May 18, 2008
    Hi, Definitely great progress done. I am wondering if there is a  way to port existing T-SQL-stored-procedures' based business logic to EF or DLINQ. Thank you, Arye Friedman

  • Anonymous
    May 19, 2008
    Lots to read and download From the Data Programmability Team   SP1 Beta Download, what's new

  • Anonymous
    May 31, 2008
    This morning we announced the availability of the Visual Studio 2008 and .NET Framework SP1 Beta releases, and now you're probably wondering... well what's changed? Here goes... Across the Entity Framework we have made numerous bug fixes (more than 20

  • Anonymous
    June 05, 2008
    This morning we announced the availability of the Visual Studio 2008 and .NET Framework SP1 Beta releases, and now you're probably wondering... well what's changed? Here goes... Across the Entity Framework we have made numerous bug fixes (more than 20

  • Anonymous
    July 24, 2008
    after inserting a ComplexType declaration using the xml editor the model can't be edited using the designer anymore (refuses to open and offers redirect to the xml editor) In previous versions (beta 2/3) the mapping for ComplexType could easily edited in the designer after declaring the ComplexType in the xml editor

  • Anonymous
    August 01, 2008
    I whole heartedly agree with everything that Adam Cooper said. I am in the exact same boat as him. As a user of Hibernate/NHibernate, I've always designed things the other way around. Being able to generate classes from an existing database is very useful, but, if you are designing a new app, it is less useful. The ability to get it to work as painlessly as possible with web services is also important.

  • Anonymous
    April 11, 2009
    Занимательная и интересная статья у вас. В отличие от большинства остальных подобных минимум воды! :)

  • Anonymous
    April 23, 2009
    IMHO, эта тема слишком сложная для новичка :)