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

(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. More precise log messages

    When I was experimenting with EF7 and mapped an identity column to a Int64 property, I got an exception. Unfortunately the exception did not told me:
    - which entity
    - which property
    had that mapping error...

    So really, instead of having 2 pages of stack trace, those 2 words would have been more useful... NHibernate does this, don't tell me that a new ORM (almost 1 and a half decade after the birth of NH) is not capable of doing at least the same as the old ORM...

    4 votes
    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)

      We’ll send you updates on this idea

      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
    • Add polymorphic associations support

      Add support for polymorphic associations like <any> and <many-to-any> in NHibernate.

      4 votes
      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)

        We’ll send you updates on this idea

        0 comments  ·  Flag idea as inappropriate…  ·  Admin →
      • Clear, Complete, and Accurate Documentation

        Break the mold! Provide clear concise documentation that describes the API, the intended use for each API, the purpose and use (with examples of the arguments to each method), and explanatory samples and snippets that are both complete and clearly show the intened information.

        4 votes
        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)

          We’ll send you updates on this idea

          0 comments  ·  Flag idea as inappropriate…  ·  Admin →
        • Support optional complex type

          For example: Class Foo has a property named Bar and that property is a reference to the complex type ComplexBar. It would be great if Bar could be left null in cases when a "user/whatever" does not have any ComplexBar information. The benefit is that ComplexBar can have required properties and other validation that only applies when the property Bar is not null. If it is null then that validation is not triggered because it does not apply. If I want Bar to always have a value then I can flag it as required, and it will behave like complex…

          4 votes
          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)

            We’ll send you updates on this idea

            1 comment  ·  Flag idea as inappropriate…  ·  Admin →
          • Generate the Association objects based on the Foriegn Key Column Name

            Generate the Association objects in a model based on the Foriegn Key Column Name rather than "Association1", "Association2" etc

            4 votes
            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)

              We’ll send you updates on this idea

              2 comments  ·  Flag idea as inappropriate…  ·  Admin →
            • Provide Refactor Into Existing Complex Type

              In the designer we can Refactor Into New Complex Type, but once we have done this we cannot Refactor all other instances into Existing Complex Type.

              4 votes
              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)

                We’ll send you updates on this idea

                0 comments  ·  Flag idea as inappropriate…  ·  Admin →
              • Navigation properties in composite ids without need for the corresponding scalar property

                If you have a class like

                public class CustomerAddress
                {
                public virtual Customer Customer { get; set; }
                public virtual Address Address { get; set; }
                public virtual string AddressType { get; set; }
                public virtual DateTime ModifiedDate { get; set; }
                }

                you should be able to create a composite id like this

                HasKey(a => new { a.Customer, a.Address });

                without defining CustomerId and AddressId properties

                4 votes
                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)

                  We’ll send you updates on this idea

                  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                • WF / EF integration

                  It would be nice if you could somehow link the WF designer with the EF designer so that entities can more easily be integrated with workflows.

                  A form designer link would also be beneficial. Define the entities, start with a form generated is a similar way as is done today with ASP.Net Dynamic data but have the ability to make changes to the templates visually. Then allow us link everything together with workflow.

                  Have integrated templates for deployment as WPF, Silverlight, ASP.Net and SharePoint 2012 deployments.

                  4 votes
                  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)

                    We’ll send you updates on this idea

                    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                  • DbContext.Database Interface

                    Please please please....

                    Can we have DbContext.Database Interfaced so that we can unit test our EF code first operations on DbContext.Database

                    thanks!
                    Dean

                    4 votes
                    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)

                      We’ll send you updates on this idea

                      1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                    • Visual Studio Database Project integration

                      Support for updating a Visual Studio Database Project(s) instead of updating the db directly with an ad-hoc file.

                      Currently 4.0 allows us to generate our database schema from the model but its capabilities are limited and destructive:
                      unique keys – no support
                      schema generation – destructive

                      Database Projects for Visual Studio has already matured and more importantly has the capability of updating schemas without being destructive to the data. It would be nice to see the next designer integrate fully with this product rather than re-invent the wheel. For those of us that manage our databases using Database Projects this…

                      4 votes
                      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)

                        We’ll send you updates on this idea

                        0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                      • 4 votes
                        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)

                          We’ll send you updates on this idea

                          1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                        • Create method should initializer collection navigation properties

                          I've found that in Code First entities, my "many" properties such as

                          property List<People> SomePropertyName {get; set;}

                          are null when the entity is instantiated. This breaks the common "convention" of just simply adding entities to the list:

                          You can't just
                          MyEntity.SomeManyProperty.Add(SomeOtherEntityInstance);

                          You have to do
                          MyEntity.SomeManyProperty = new List<SomeOtherEntity> { SomeOtherEntityInstance };

                          but, of course, you can't just do that, because you might wipe out an existing list, if there is one, so you must then do a check first. Ugly.

                          As a lesser evil, I've resorted to instantiating empty lists in the constructor of my entities but this is…

                          4 votes
                          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)

                            We’ll send you updates on this idea

                            5 comments  ·  Flag idea as inappropriate…  ·  Admin →
                          • Allow interception of the creation of dynamic proxies

                            At the moment, the creation of a dynamic proxy for a POCO class is an internal process. I'd like to be able to intercept this proxy creation event (possibly through the service locator) in order to be able to emit additional properties / methods into the dynamic proxy class or to customize the functionality of the existing change tracking / lazy loading code.

                            4 votes
                            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)

                              We’ll send you updates on this idea

                              0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                            • Migrations: Reset migrations function

                              Currently, people are hacking a way around the issue of needing to Reset migrations: http://stackoverflow.com/questions/11679385/reset-entity-framework-migrations

                              The current solution means deleting the migration folder and then deleting the migration history table in the DB, and then adding a brand new migration - but then having to comment out the code in the UP()... which works but isn't optimal for example to check db consistency or when having new developers onboard the team and just being able to run Update-Database on their machine.

                              4 votes
                              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)

                                We’ll send you updates on this idea

                                0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                              • Query serialization / deserialization

                                ** SUGGESTION **
                                Native support for query serialization and deserialization (to XML) decoupled from a concrete ObjectContext, including query parametrization and correct management of lambda expressions (e.g. using expression expansion as in LinqKit).

                                ** WHY **
                                We've developed a set of classes that allow a query to be written in the client layer and executed in the service layer via web services (with POCO entities). After the query is written normally using linq to entities and obtaining an IQueryable<T> object, this implementation transparently does the following:

                                CLIENT side:
                                - Expands the query expression tree to correctly manage lambda expressions.
                                -…

                                4 votes
                                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)

                                  We’ll send you updates on this idea

                                  0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                • Support for generic complex types

                                  You should support for using generic complex types. Consider scenerio where I would like to create Rage<T> type. Now I must create RangeOfInt32, RangeOfInt64, RangeOfDecimal, etc. It will be also great if that class could be defined outside of the model.

                                  4 votes
                                  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)

                                    We’ll send you updates on this idea

                                    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                  • System.Data.Entity.DbSet<TEntity>.Create() method overload for taking n parameters

                                    The idea would be to overload Create() method on DbSet so as to take any parameters, resolving to the constructor tha best fits, like so

                                    public TEntity Create(params object[] args);

                                    (I understand the generated proxy for change tracking and nivigational properties support should honor all constructors defined on the TEntity type)

                                    This would allow for a much cleaner (and layarable) DomainModel. Entities may now be created from required values and the need to set those values (i.e. the need for public setters) after the creation dissapears.

                                    4 votes
                                    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)

                                      We’ll send you updates on this idea

                                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Weak references in the object context

                                      Weak references would allow the context to cache objects but allow the caller can use a single context without wasting memory.

                                      Example:
                                      An embedded device where there is no clean unit of work. When something is loaded into the device it must process it, and when that something is done the user may remove it at some later point. It processes many somethings simultaneously, up to maximum capacity.

                                      For now, we either use NoTracking objects or create a context for each object. This induces a lot of unnecessary overhead.

                                      A weak reference would mean one context, no memory growth, but…

                                      3 votes
                                      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)

                                        We’ll send you updates on this idea

                                        0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                      • namespace complex types

                                        Place complex types generated by the database in their own namespaces. Right now, when a stored procedure is imported, a complex type is generated and placed in no particular namespace, so all of the complex types are floating about.

                                        Perhaps instead, use the namespace that's been given to the model.

                                        3 votes
                                        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)

                                          We’ll send you updates on this idea

                                          1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Auto Create CRUD stored procedure

                                          EF should have the ability to automatically create basic CRUD stored procedures for every table. These basic CRUD stored procedures will only focus on a single table and all it's columns.

                                          An advanced feature would be the ability to auto generate CRUD stored procedures that take into account parent and child tables or many to many scenarios, etc.

                                          Other features would be to create stored procedures that allow for paging and streaming of large amounts of data. Say you have a web page that list contacts and you want ot show the 10th page. It would be ice to autogenerate…

                                          3 votes
                                          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)

                                            We’ll send you updates on this idea

                                            0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                                          1 2 5 7 9 12 13
                                          • Don't see your idea?

                                          Entity Framework Core Feature Suggestions

                                          Feedback and Knowledge Base