Missing Features in Entity Framework Core

Updated: see my post here for info on EF Core 8.

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) as of Entity Framework Core 2.1:

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

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

Implemented in EF Core 2.1.

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

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

Implemented in EF Core 2.1.

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

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

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

Implemented

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

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

Implemented

Table Splitting

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

Implemented in EF Core 2.0.

Table Per Type Inheritance Strategy

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

Implemented

Table Per Concrete Type Inheritance Strategy

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

Implemented

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

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

Implemented

Map database views The ability to map views instead of tables

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

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

Implemented in EF Core 2.1.

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

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

Implemented

Custom conventions The ability to add custom conventions

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

Implemented

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

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

Implemented

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

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

Implemented in EF Core 2.1.

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

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

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

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

Implemented

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

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

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

Implemented 

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

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

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

Implemented in EF Core 2.1.

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

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

                             

15 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.

  • This list needs to be updated:
    https://blogs.msdn.microsoft.com/dotnet/2018/05/30/announcing-entity-framework-core-2-1/#comment-542395

  • Thanks, Mohammad! Indeed it does! ;-)

Add a Comment

As it will appear on the website

Not displayed

Your website