EF7 Beta 6 Available

Today we are making Entity Framework 7 Beta 6 available. EF7 will be the next major release of Entity Framework and it is currently in pre-release.

Still very much a preview

EF7 introduces some significant changes and improvements over EF6.x and therefore the pre-release phase of EF7 is much longer than other recent releases. If you decide to try out EF7 then please bear in mind that this preview is designed to give you an idea of what the experience will be like and there are still a number of limitations and missing features that will be addressed before RTM.

Docs

We have made a modest start on documentation for EF7, you can view the current documentation at https://ef.readthedocs.org. Obviously the URL will be replaced with something ‘pretty’ before we reach stable release.

Beta 6 Platforms

You can use EF7 Beta 6 in the following types of applications.

  • ASP.NET 5 applications that target either full .NET or the new .NET Core. EF7 is included in new ASP.NET 5 applications that are created using the “Web Site” project template.
  • Full .NET applications (Console, WPF, WinForms, and ASP.NET 4) that target .NET 4.5 or later. We only recommend this for trying out EF7 in sample applications. If you are writing a production application then you should continue to use EF6.x. We do not recommend attempting to upgrade an EF6.x application to EF7 at this stage as there are still key features yet to be implemented on EF7 (such as inheritance support which is currently being implemented).
  • Mac and Linux applications targeting Mono 4.0.0 or later.
  • Universal Windows Platform (UWP) will be supported by Beta 6 when the final release of Windows 10 Developer Tools is made available. It will not work with the developer tools previews that were released prior to the RTM due to changes in the NuGet package layout.

Beta 6 Databases

The following database providers are available on NuGet.org and support Beta 6. See our providers page for more information and links to getting started.

What’s implemented in Beta 6?

The following features have been implemented since Beta 5.

  • Data annotations (excluding the relationship annotations which we are working on at the moment)
  • Customization of reverse engineer via templates
  • Raw SQL commands (via Database.ExecuteSqlCommand)

The following features were implemented in previous pre-releases and continue to be available in Beta 5 (most of them with improvements).

  • Basic modeling including built-in conventions, table/column mapping, and relationships
  • Change tracking
  • LINQ queries
  • Table based Insert/Update/Delete (including batching)
  • Migrations and database creation/deletion
  • Transactions (including automatic transactions during SaveChanges and explicit transaction APIs)
  • Identity and Sequence patterns for database generated key values
  • Raw SQL queries (via DbSet.FromSql)
  • An early preview of reverse engineering a model from a database
  • Logging
  • Alternate keys including the ability to use them as keys in a relationship

What are we working on now?

Most of our effort from now until our initial release will be on cross-cutting quality concerns.

  • Bug fixing
  • Performance tuning
  • API reviews
  • Documentation
  • etc.

There are a handful of features that we are implementing before our initial RTM.

  • TPH Inheritance
  • Cascade delete
  • Deployment of database changes via migrations

Comments

  • Anonymous
    July 27, 2015
    Looking good, Rowan.  Been a long road here, but you and your team are doing great work.  Looking forward to checking this out once I can install Windows10RTM and VS2015!

  • Anonymous
    July 27, 2015
    > Alternate keys including the ability to use them as keys in a relationship Been waiting for this for a long time. Thanks for implementing it.

  • Anonymous
    July 27, 2015
    Congrats guys! Happy to see that you have a provider for SQLite und InMemory. Wasn't it delayed beyond the RTM? I am looking forward to tomorrow, to try to use EF 7 on the WUP with SQLite! Great thing!

  • Anonymous
    July 27, 2015
    What about support for lazy loading?

  • Anonymous
    July 28, 2015
    Any idea when providers for non-Microsoft data sources may be available? For example, a MySQL provider? I know you're not implementing this, but, I'm curious if you've talked with other vendors and if they mentioned whether they are already working on these.

  • Anonymous
    July 28, 2015
    The comment has been removed

  • Anonymous
    July 29, 2015
    Oracle support?

  • Anonymous
    July 30, 2015
    The comment has been removed

  • Anonymous
    August 03, 2015
    Can you please shed some light on when we might expect tooling support for visual basic. Migrations etc only generate c# at the moment

  • Anonymous
    August 07, 2015
    I guess it's quite clear by now that UWP apps will not support SQLServer database provider. Pity.

  • Anonymous
    August 15, 2015
    Hi Rowan, Do you have an estimation when will EF 7 be RTM? We start new projects all the time and we need to decide if it's the right time to starting developing using EF 7 or whether it's still too soon. Doron

  • Anonymous
    September 21, 2015
    The comment has been removed

  • Anonymous
    September 27, 2015
    Hi! What about EF 6.2.0? It has been under development for a long time

  • Anonymous
    October 19, 2015
    @Robin Sedlaczek – Azure Table Storage and Redis are the ones we delayed. We are keeping SQLite active because it is a big part of our UWP story and is also useful for cross-platform development.

  • Anonymous
    October 19, 2015
    @Carsten – Lazy loading is not yet implemented. Lazy loading is a common request but is also the number 1 source of performance issues we see and folks are often not aware that they are using it. Based on this we are going to see how we go without it... but will add it if feedback shows that folks really need it.

  • Anonymous
    October 19, 2015
    @Jon - we are working with a number of provider writers on getting the EF7 providers up and running. Some of those are open source and/or happy for us to share details of their plans – others prefer to keep things under wraps. I can’t comment on specific providers other than the Npgsql and SQL Compact providers who are being very public about their development.

  • Anonymous
    October 19, 2015
    @Jon – Scenarios such as yours that rely on EDSC would be a situation where we would recommend continuing with EF6.x until we have that story ironed out in EF7. EF6.x is going to be supported for some time and we are going to continue small improvements and bug fixes to the code base. – so swapping to EF7 is not going to be required (or even recommended) for everyone right away.

  • Anonymous
    October 19, 2015
    @Daniel & @J. Portelli – For the moment just SQLite will work. That said, we may be able to make direct connections to a remote database work (after our initial RTM) – though obviously that may not always be the best architecture for an application.

  • Anonymous
    October 19, 2015
    @Aaron – We will be following the same schedule as ASP.NET 5 on VB.NET support - github.com/.../Roadmap (post initial RTM).

  • Anonymous
    October 19, 2015
    @Doron Grinzaig – Our roadmap is public - github.com/.../Roadmap. RTM is currently slated for Q1 next year, though of course that may move a little as we get closer to release.

  • Anonymous
    October 19, 2015
    @Jon – We think string.Join can be supported, we’re tracking it via github.com/.../2981.

  • Anonymous
    October 19, 2015
    @GreekBoy – I provided a little update on EF6.2 (and why it is delayed) at the end of our EF7 Beta 8 release post - blogs.msdn.com/.../ef7-beta-8-available.aspx.