Entity Framework Core Feature Suggestions

Welcome! Use this web site to submit ideas and vote for what features you want to see in future versions of Entity Framework Core.

Our team will only fix bugs, implement small improvements and accept community contributions in the EF6 codebase. Larger feature work and innovation will happen only in the EF Core codebase. If you have ideas for improving EF6, we recommend you submit them on the EF6 GitHub site listed below.

Please also consider these other options before submitting anything to this site:

  • If you want to learn how to use our products, visit our documentation pages.
  • If you want to report bugs, make contributions, or learn about our product roadmaps, visit our EF Core or EF6 project pages on GitHub.
  • If you have technical questions or need help, try StackOverflow’s EF Core or EF6 tags, or visit our MSDN forums. Note that roadmap questions, bug reports, feature requests or ideas are not appropriate for StackOverflow. Visit StackOverflow’s help center for guidance on appropriate usage.

How can we improve Entity Framework Core?

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. Allow "normally"/correctly formatted connection strings

    Connection string sections now needs two connection strings: one for EF to use, and one for all other standard .Net Framework APIs utilising the same database.

    This is kinda bizarre, violating DRY, KISS etc.

    The requested change:
    Have a config section for EF.
    Have all non-standard connection string settings set here.
    Have it reference the regular connection string section to get the standard settings for the database.
    Combine the settings within the framework in order to make a connection.

    Simple, no?

    8 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      3 comments  ·  Flag idea as inappropriate…  ·  Admin →
    • Persistant Ignorant Base Types

      Supporting base types that don't need database serialization would be ideal. For instance, an abstract class

      "Layout", and then the classes that inherit from it are persisted in the database, but the Layout class is just an abstract template.

      4 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        3 comments  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
      • Flexible stored procedure support: return values and output parameters

        Support Stored Procedure Return Values, output parameters of any type and procedures that don't return a result set, like an update statement.

        110 votes
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          3 comments  ·  Flag idea as inappropriate…  ·  Admin →
        • Allow filtering for Include extension method

          There is no ablity to filter included objects in ObjectQuery<TSource>.Include method.
          Allow filter predicate in Include method in Entity Framework.
          I suppose this method of ObjectQuery<TSource> may have following signature:

          /// <summary>
          /// Includes related objects which meet to predicate
          /// </summary>
          /// <typeparam name="TRelation">Type of related object on another end of navigation property</typeparam>
          /// <param name="relationSelector">Expression that returns set of related objects</param>
          /// <param name="predicate">Predicate that has to be met</param>
          /// <returns>Query</returns>
          public System.Data.Objects.ObjectQuery<TSource> Include<TRelation>(Expression<Func<TSource, IEnumerable<TRelation>>> relationSelector, Expression<Func<TRelation, bool>> predicate);

          1,966 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            24 comments  ·  Flag idea as inappropriate…  ·  Admin →
          • Easy way to log SQL statements

            Currently this requires lots of ceremony setting up ILogger infrastructure as described in https://docs.microsoft.com/en-us/ef/core/miscellaneous/logging.

            188 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              7 comments  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
            • Ability to intercept and cancel changes to properties

              (Note that the original description of this idea talked about making PropertyChangingEventArgs cancellable. Although this is an interesting request, it is not a change we could implement in EF. In fact, there is probably not way it can be implemented in .NET without defining a new standard interface for change tracking)

              Rather than declining the idea, I am renaming it to capture the essence that is still potentially applicable to EF: provide a hook that can be used by an application or library to intercept what happens whenever EF detects that a property of a tracked object is being changed…

              17 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                3 comments  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
              • Extra Lazy Loading

                When I do user.Cars.Add() EF load all Cars for that user.
                user.Cars.Count() too

                150 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                  6 comments  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                • Table-Valued Parameters support

                  TVP support for stored procedures

                  1,404 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    33 comments  ·  Flag idea as inappropriate…  ·  Admin →
                  • Clear all entities in a set

                    Need to be able to call Clear on an EntitySet to delete all entities from that set (i.e. rows from underlying table). When called as myObjectContext.MyCustomers.Clear() it would delete all rows in the underlying table.

                    7 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                    • Hooks to intercept and modify queries on the fly at high and low level

                      We have seen that there are lots of discussion surrounding the generated SQL not being optimized. Entity Framework should have a provision wherein User should be able to change the Generated SQL and use it for further processing through some mechanism

                      61 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        3 comments  ·  Flag idea as inappropriate…  ·  Admin →
                      • Allow only some CUD operations to map to stored procedures

                        At present, mapping stored procedures is an all or nothing proposition. Either you map each of the Insert, Update and Delete procedures or none at all. It would be great to utilize the generated functionality as is but still have the option to override just one of the three.

                        9 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                        • An ADOMD.NET Provider for EF, for retrieving multidimensional data from cubes over EF to POCOs

                          We are working on big BI projects for different customers and it would be great, if we could use only one technology to get the data (both multidimensional and relational) handling. It would be great to send mdx queries to a SSAS cube, retrieve the data and have a possibility to map the retrieved data for example over annotations to POCOs.

                          49 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                          • Raise event right after EntityObject is materialized

                            When an EntityObject is materialized (i.e. after all its values are loaded from the database) an event should be raised.
                            I want to perform some setups and things each time the entity's data is set in its properties (including nav properties), there is no way to raise such an event, especially not with navigation properties where the AssociationChanged event is not raised at all for loading from db).
                            After the Constructor passes and the properties are all set with data from db, that event should be raise.
                            Should be something like EntityMaterialized or EntityLoaded etc.
                            In general I think the…

                            4 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              1 comment  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                            • Stored procedure support for eager loading graphs

                              So far a stored procedure can return only a plain entity. It would be great if we could create a stored procedure that returns orders and details information in a single roundtrip.

                              54 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                1 comment  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                              • Client Side Profiler

                                Create a client side profiler that will log running queries and statistics for the various data contexts. Also provide helpful tips to improve performance if applicable. Similar to what NHProf already does for NHibernate.

                                35 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  2 comments  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
                                • 54 votes
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    2 comments  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Expose underlying table/view name

                                    In order to allow custom interactions that EF doesn't yet support (such as being able to clear all entities from a particular ObjectSet on an ObjectContext i.e. delete all rows from a table) the table/view name that the entity is based on should be exposed. Currently I have to parse the exposed connection string to determine the table name!

                                    2 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Support for spatial types and spatial query

                                      Support for spatial types and spatial query

                                      407 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        12 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                      • LINQ support for comparison of varbinary columns

                                        It is not currently possible to write a LINQ query that compares a value to data stored in a varbinary column. By comparison, I mean SQL-supported <, <=, >, >= comparisons that lexicographically compare the bytes in the column.

                                        As far as I know there is no way to write these queries without stepping down into Entity SQL.

                                        see http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/f90dec50-acc7-4157-8927-acb246ec3572 for more.

                                        52 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Support for DateTime built-in operations in LINQ to Entities

                                          Some customers want to write queries that include such expressions as "date1 - date2" or "datetime3 + timespan1 > datetime4". LINQ to Entities currently support some of date/time operations through the EntityFunctions.AddX and DiffX functions, but it doesn't support built-in operators with data/time types.

                                          37 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            1 comment  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                                          • Don't see your idea?

                                          Entity Framework Core Feature Suggestions

                                          Feedback and Knowledge Base