Missing Features in Entity Framework Core

Updated: with EF Core 1.1 and 2.0.

Here’s a brief summary of some of the features that were present in previous versions of Entity Framework (6.x) and were excluded (or are not yet implemented) in Entity Framework Core 2.0:

Feature Description Reason/Workaround
Entity Type Configuration The ability to load entity configuration from classes in the same assembly as the context (EntityTypeConfiguration)

https://github.com/aspnet/EntityFramework/issues/2805

Implemented in EF Core 2.0.

Lazy loading The ability to load entity relations after the root entity was loaded, automatically

Will be available in a future version, probably 2.1. For now, we need to use eager loading (Include).

https://github.com/aspnet/EntityFramework/issues/3797

Explicit loading The ability to load entity relations after the root entity was loaded, explicitly

https://github.com/aspnet/EntityFramework/issues/3797

Implemented in EF Core 1.1.

Support for Group By Specifying GroupBy in a LINQ query

Currently it falls back silently to LINQ to Objects, meaning, brings everything from the database and groups in memory. Will be available in version 2.1. For now, use plain SQL.

https://github.com/aspnet/EntityFramework/issues/2341

Support for user defined functions

Using static methods as UDFs

https://github.com/aspnet/EntityFramework/issues/4319

Implemented in EF Core 2.0.

DateTime, TimeSpan operations and common SQL functions Doing DateTime operations and using common SQL functions in LINQ

The ability to do queries involving Date/Time operations (DbFunctions) and common SQL functions (SqlFunctions) in LINQ queries is not supported now. Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/2850

https://github.com/aspnet/EntityFrameworkCore/issues/6025

Complex Values Support for properties of complex types (value objects)

https://github.com/aspnet/EntityFramework/issues/246

Implemented in EF Core 2.0.

Many to Many Collections Many-to-many relations without a middle entity/table

Will be available in a future version. For now, we need a middle entity and table.

https://github.com/aspnet/EntityFramework/issues/1368

Table Splitting

https://github.com/aspnet/EntityFramework/issues/619

Implemented in EF Core 2.0.

Table Per Type Inheritance Strategy

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/2266

Table Per Concrete Type Inheritance Strategy

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/3170

Mapping CUD with stored procedures The ability to use stored procedures for doing inserts, updates and deletes seemlesly

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/245

Map database views The ability to map views instead of tables

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/1679

https://github.com/aspnet/EntityFramework/issues/827

Spatial data types The ability to query and use spatial data types

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/1100

Custom conventions The ability to add custom conventions

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/214

Populate non-model types from SQL Turn the results of custom SQL into classes that are not part of the model

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/240

Connection resiliency support The ability to retry connecting and sending queries

https://github.com/aspnet/EntityFramework/issues/237

Implemented in EF Core 1.1.

Seeding data in migrations The ability to add data when migrating

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/629

Command and query interception The ability to intercept queries and SQL commands

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/626

https://github.com/aspnet/EntityFramework/issues/4048

https://github.com/aspnet/EntityFramework/issues/737

Visual Studio support for generating/updating entities from the database and viewing the model The ability to generate the model from the database from inside Visual Studio and to view the model graphically

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/5837

Database initializers Database initializers Dropped.
Automatic migrations Automatic migrations Dropped.
Pluralization Service Pluralization Service

https://github.com/aspnet/EntityFramework/issues/2506

Implemented in EF Core 2.0.

ObjectContext events SavingChanges and ObjectMaterialized events of ObjectContext

Will be available in a future version.

https://github.com/aspnet/EntityFramework/issues/3204

https://github.com/aspnet/EntityFrameworkCore/issues/626

ObjectContext (Entity SQL) Entity SQL Dropped.
Model first approach Model first approach Dropped.
Data Annotations validations The ability to perform data annotations validations before saving changes Dropped.
Support for System.Transactions The ability to use TransactionScope ambient transactions

Will be available in version 2.1.

https://github.com/aspnet/EntityFrameworkCore/issues/5595

https://github.com/dotnet/corefx/issues/12534

Please let me know if you think I missed something! Winking smile

See Microsof't comparison of Core and pre-Core versions here: https://docs.microsoft.com/en-us/ef/efcore-and-ef6/features.

For the most up to date roadmap, please consult the EF Core roadmap: https://github.com/aspnet/EntityFramework/wiki/Roadmap.

Also, do check out the Entity Framework issue tracker: https://github.com/aspnet/EntityFramework/issues

                             

13 Comments

  • Dang... seems like a damning list. :( I was thinking about getting involved with this for my next project but I might stick with 6.0...

  • Hi, Mike!
    Yeah... even MS warns that the 6.x version is the recommended one... It's gonna take some time, I guess. Some of these are must-have features - just take the GroupBy thing, for instance.

  • No Group by and no datetime operations? These two features alone are a reason to stay as far away from EF Core as I can!!! I would love it if I could use EF Core for a current project, but the current state makes it imposible. And probably at least for the next year too.

  • Raul: totally understand you, I feel the same. EF Core is not ready for production.

  • I loved Data Annotations validations using partial meta classes. I don't remember using EF specifically for validation, so I assume JS/MVC model validation will continue to work as-is.

  • Mycall: yes, here I'm talking about validations on the DbContext, when it goes to SaveChanges.

  • Yes, indeed. What's striking is how this continues to be a challenge for the group that has worked on this for over a decade now. Even with a rewrite it has proved to be a daunting undertaking. I've been with them since the start and have followed them from the beginning (and am one of their biggest fans), so it's been interesting to follow.

    This is still a disappointment, however. I am looking at building a new app (my first) and was hoping to use EF Core. Hopefully I can find a solution to use EF6.0 on the server, while still using something viable on my (Xamarin/UWP) clients. Definitely open to any suggestions. :)

  • Wow, how can you guys seriously consider this a production ready release without even BASIC date functionality? This tells me that EF Core simply isn't ready. As far as I can tell there is A LOT of heavy lifting that needs to be done before you guys should consider a 1.0 release.

  • TheLievense:
    Who are "you guys"? I totally agree with you! :-)

  • SQLite does not support transactions around schema changes, and so migrations are pretty much crippled on Android and IOS (Xamarin). Not really an EF Core problem but a showstopper for me.

  • This link is wrong´: https://github.com/aspnet/EntityFramework/issues/1186 should be: https://github.com/aspnet/EntityFramework/issues/5837

    Also, would be nice with an update for 2.0 preview1:
    Filters (reduces need for query interception, but not mentioned directly in your list)
    Owned entities (Complex Types)
    https://github.com/aspnet/EntityFramework/issues/2805 - fixed
    https://github.com/aspnet/EntityFramework/issues/2850 - groundwork done
    https://github.com/aspnet/EntityFramework/issues/246 - done

  • Hi, ErikEJ!
    Thanks, you are right, I updated the link.
    As for the stuff that will be fixed in EF 2.0, I will write another post, when it is released.
    Cheers!

  • Hard to read the table, please consider adding horizontal lines for each row.

Add a Comment

As it will appear on the website

Not displayed

Your website