Skip to content

Releases: dotnet/efcore

7.0.0-beta4

29 Apr 18:08
Compare
Choose a tag to compare
7.0.0-beta4 Pre-release
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. We’ve made significant progress since our last pre-release, but 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.

If you aren’t comfortable working with a prerelease that is still very much in-flux then don’t worry… there will be plenty of opportunity to try out pre-release EF7 once it is much more stable.

Where can I use Beta 4?

Beta 4 can be used 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. The following resources will help you get started using EF7 in ASP.NET 5:
  • WPF, WinForms, Console and ASP.NET 4 applications that target .NET 4.5.1 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 3.12.1 or later can make use of EF7. We have not done extensive testing of this scenario, but basic query and save functionality works.

What databases can I target with Beta 4?

Currently you can target SQL Server or our in-memory store (designed to help with testing). These providers are available in the EntityFramework.SqlServer and EntityFramework.InMemory NuGet packages.

We are working on other providers that will be available for the next prerelease (more on that below).

What’s implemented in Beta 4?

Here is a rough guide to what currently works in Beta 4. Most of these features are a work-in-progress and still have limitations.

  • 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 commands
  • An early preview of reverse engineering a model from a database
  • Logging
  • Unique constraints including the ability to use them as keys in a relationship

What’s Next

Here are some of the areas we are currently working on (or working with other development teams to deliver). You can see many of these features already underway in our working code base.

Providers

There is work underway to enable the following database providers. We’ve also had contact with many other providers who are planning to provide EF7 support.

  • SQLite (being developed by the EF team)
  • PostgreSql (being developed by the npgsql team)
  • MySql (being developed by the MySql team)

Platforms

We are working to enable EF7 use on the following platforms:

  • Windows 10 Universal Application Platform
  • Cross-platform .NET for Mac and Linux
  • Android and iOS Mono frameworks

Features

Here are a number of the cross-cutting features we are currently working on. This isn’t all we will be doing for RTM, just what’s currently underway.

  • Inheritance
  • Cascade delete
  • Template-based reverse engineering from a database

7.0.0-beta3

23 Feb 17:30
Compare
Choose a tag to compare
7.0.0-beta3 Pre-release
Pre-release

Features

  • Implement AttachGraph (#1229)
  • Make EntityFramework a meta-package (#1049)
  • Commands: Remove-Migration (#631)

Bugs Fixed

  • Should be able to add a dependent entity with identifying FK before the principal (#1207)

7.0.0-beta2

16 Jan 15:09
Compare
Choose a tag to compare
7.0.0-beta2 Pre-release
Pre-release

Features

  • Migrations: Apply-Migrations error message on Phone/Store apps (#822)
  • Consider making resource string helpers public (#804)
  • Decide on best default sizes for relational and provider-specific types (#768)
  • Commands: Infer namespace (and directory) from last migration (#671)
  • Easier state entry access when adding entities (#498)

Bugs Fixed

  • sqlite, decimal and non-US locale - System.FormatException: Input string was not in a correct format (#1057)
  • Commands: Use-DbContext should not affect commands invoked on other projects (#990)

7.0.0-beta1

12 Nov 15:33
Compare
Choose a tag to compare
7.0.0-beta1 Pre-release
Pre-release

Features

  • Commands: Wire-up Logging (#807)
  • Migrations PowerShell: Support win81, wpa81, and portable projects (#579)
  • Migrations: KRE Command Line Interface (#342)

Bugs Fixed

  • EF7 on VS 14 CTP4 on Windows 10 (#896)
  • Commands: Discover context types from migrations (#670)

7.0.0-alpha4

06 Oct 15:48
Compare
Choose a tag to compare
7.0.0-alpha4 Pre-release
Pre-release
Use ContextTypeAttribute during migration discovery

7.0.0-alpha3

15 Aug 22:16
Compare
Choose a tag to compare
7.0.0-alpha3 Pre-release
Pre-release

Since Alpha 2 the majority of our work has been around adding or improving the core components of the EF7 code base and improving test coverage.

These release notes only list the more prominent changes/improvements/additions that affect the functionality available to developers using EF7.

Please bear in mind that this preview is designed to give you an idea of what the experience in EF7 will be like and you will quickly hit limitations if you deviate from any sample code and/or try to use advanced features. The API surface will also change significantly in future previews.

Providers

In Alpha 3 we made progress on our various database providers:

  • EntityFramework.SqlServer - More query operators are now processed in the data base. We also made general improvements to the DDL Pipeline and the Update Pipeline.
  • EntityFramework.SQLite - We brought the Query Pipeline, Update Pipeline and DDL Pipeline up to a similar quality level as the SQL Server provider.
  • EntityFramework.AzureTableStorage - This provider was checked into our main code base and can now be used to target Azure Table Storage. Basic query processing is implemented so that filters on row and partition key are processed in the database. The Update and DDL pipelines also have basic functionality implemented.
  • EntityFramework.InMemory - We didn't make any significant changes to this provider. It has basic functionality implemented and is useful for testing scenarios etc.

Definition of Provider Terms

Query Pipeline: The component that translates a LINQ query into a store specific query and then passes results back to EF.
Update Pipeline: The component that translates information from the ChangeTracker into store specific update commands (i.e. INSERT/UPDATE/DELETE on a relational database).
DDL Pipeline: The component that creates schema objects in the database (i.e. Tables, Columns, etc. in a relational database).

Relationship Fix-up / Change Detection

We implemented more of the functionality that detects changes to the values stored in the properties of your objects. This also includes automatically 'fixing up' the values stored in navigation and foreign-key properties when EF detects that one of them has changed.

Migrations

We enabled the migrations commands for non-ASP.NET vNext applications. If you install the EntityFramework.Design NuGet package, the Add-Migration and Update-Database commands will be available in Package Manager Console. Note that the Enable-Migrations command is no longer required or available.

EF 7.0.0-alpha2

08 Jul 16:31
Compare
Choose a tag to compare
EF 7.0.0-alpha2 Pre-release
Pre-release

Since Alpha 1 the majority of our work has been around adding or improving the core components of the EF7 code base and improving test coverage.

These release notes only list the more prominent changes/improvements/additions that affect the functionality available to developers using EF7.

Please bear in mind that this preview is designed to give you an idea of what the experience in EF7 will be like and you will quickly hit limitations if you deviate from any sample code and/or try to use advanced features. The API surface will also change significantly in future previews.

Package Renames

We renamed most of the data access related packages to better align with the existing EF6 package names.

The new names for the top level packages you would install in a project are listed below. We also renamed a number of the infrastructure packages, but they will be pulled in as needed when you install one of the packages listed below.

  • EntityFramework
  • EntityFramework.SqlServer
  • EntityFramework.SQLite
  • EntityFramework.AzureTableStorage
  • EntityFramework.InMemory

Providers

In Alpha 2 we made progress on our various database providers:

  • EntityFramework.SqlServer - The most notable change from Alpha 1 is that we now process a number of LINQ operations in the database (as opposed to always sending a SELECT * FROM xyz query as we did in Alpha 1. These include filtering, sorting, projection (i.e. selecting a subset of columns), and others. We also made general improvements to the DDL Pipeline and the Update Pipeline.
  • EntityFramework.SQLite - This release contains some early work on the SQLite provider. There are still a number of issues to be addressed in the Query, Update, and DDL pipelines.
  • EntityFramework.InMemory - We didn't make any significant changes to this provider. It has basic functionality implemented and is useful for testing scenarios etc.

Definition of Provider Terms

Query Pipeline: The component that translates a LINQ query into a store specific query and then passes results back to EF.
Update Pipeline: The component that translates information from the ChangeTracker into store specific update commands (i.e. INSERT/UPDATE/DELETE on a relational database).
DDL Pipeline: The component that creates schema objects in the database (i.e. Tables, Columns, etc. in a relational database).

Async Query Operators

More of the asynchronous query operators (such as ToListAsync(), FirstAsync()) are now functional.

Generalized DbContext.Database Methods

As we've worked on targeting no-relational data stores it became apparent that the fine grained DDL methods on DbContext.Database (such as Exists(), HasTables(), etc.) were not applicable to most non-relational databases. We now have more generic EnsureCreated() and EnsureDeleted() methods on DbContext.Database.

The relational specific methods are available by using the AsRelational() extension method that is available when targeting a relational provider. For example, myContext.Database.AsRelational().Exists(). If you attempt to use AsRelational() when targeting a non-relational database, it will throw.

Note that the DDL methods on DbContext.Database are being widely used in samples etc. at the moment because Migrations is not yet available to handle database creation and alteration. Once Migrations is available, these methods should only be used to create databases for unit testing etc.