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. Visual Studio diagram designer

    A full fledged diagram designer that allows editing the EF Core model using boxes and lines metaphor rather than code. Where you can add/update/remove tables and views from an existing database.

    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  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
    • Allow the database schema for the database context to be specified at run-time

      We use Oracle databases with different schemas for Train, Val, Prod, etc. for client installs, and even more schemas for internal Dev/Test databases (separate schemas for running manual tests, different schemas for different versions being developed/tested, etc.).

      The current restriction of having to specify a specific schema in the model means that we straight up can't use Entity Framework.

      3 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 →
      • EF Core Migrations Column ordering

        Migrations on EF Core should do Scaffolding of the fields of entity like the order of the entity (and NOT alphabetical)

        As this req:
        https://github.com/aspnet/EntityFramework/issues/2272
        and
        https://github.com/aspnet/Scaffolding/issues/398

        378 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  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
        • Provide a way to include transaction information in EF logging

          We're able to log the commands that EF is executing, by setting a delegate on DbContext.Database.Log.

          When you do this, you see "Started Transaction at ..." and "Committed Transaction at ..." messages.

          From this, you'd think you could determine the duration of the transactions. You can't. When load becomes high enough for transactions to begin to overlap, there is no way to match the start and commit transaction messages.

          We're able to manipulate the text of the messages that are being logged by deriving a class from DatabaseLogFormatter.

          Within DatabaseLogFormatter.LogCommand() we have access to the DbCommand, and through DbCommand.Transaction to…

          1 vote
          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 →
          • Ability to exclude prefixes/patterns from model entity names

            It would be great if a model could be created from an existing database (database first) without including certain SQL naming conventions that may be in place. E.G. Rather than creating a POCO class named tbl_Person, I can tell the tool to exclude the "tbl_" prefix and the class is simply named Person. This would be useful for column/property mapping as well. Being able to use regular expressions for the replacement would probably be helpful. This would be useful when generating 10s to 100s of entities from tables so that they don't have to be renamed individually.

            1 vote
            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  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
            • Support tuples in query expressions

              With the introduction of first-class support for tuples in C#7, Entity Framework should add support for tuples inside query expressions along.
              SO issue here: http://stackoverflow.com/questions/17595105/use-tuples-with-entity-framework-contains-statement

              The lack of support for this is super frustrating, especially since anonymous classes are not supported in EF either, and from a performance perspective this is simply a fixed number of values being passed into a query (ie: should not be any more complex to execute on the DB).

              For example, the following should work but is currently not supported:

              IEnumerable<string> identifers = /*get from somewhere*/....;

              Tuple<string, string>[] identifierPairs = originIdentifers.Select( _ => {
              string[]…

              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 →
              • 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...

                6 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  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                • Throw exception when you attempt to access a navigation property that is not loaded

                  Of course this should be an optional feature that can be enabled from the DbContext configuration. It only makes sense when Lazy Loading is disabled.

                  This will be particularly useful for writing domain models that are independent of the data access technology and thus cannot use the EF functions to check whether a property is loaded.

                  Currently, if the logic inside the domain model tries to access a navigation property that is not loaded, this will either fetch the data from the database if lazy loading is enabled (a lot of developers do not like lazy loading) or, if lazy…

                  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…)
                    1 comment  ·  Flag idea as inappropriate…  ·  Admin →
                  • Configure the string based search to be 'case sensitive' or 'case insensitive'

                    Every time we need to search a string (contains/startswith etc), we need to write .ToLower() in each expression. But there should be a configuration property where we can define whether we want to search in case sensitive way or we want to ignore the case sensitivity.
                    Thus we can avoid writing the same expression in whole application's data layer.

                    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…)
                      0 comments  ·  Flag idea as inappropriate…  ·  Admin →
                    • Support C# 6 Expression-bodied function members in Linq-to-entities

                      C# 6 added the feature to define class attributes in Lambda like syntax as "Expression-bodied functions" - it would be great if EF could take advantage of these when parsing the expression tree for a Linq-to-entities query.

                      That way these attributes could be used in Linq-to-entities where statements and evaluated at the database level assuming they only used canonical functions.

                      So:

                      public class Post
                      {
                      public int PostId { get; set; }
                      public string Title { get; set; }
                      public string Content { get; set; }
                      public string DisplayName => Title + " " + Content;

                      }

                      var query =…

                      3 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  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                      • Add DbContext.Database.SqlQuery to Entity Framework Core

                        I can't always get the best performance for extremely specific queries queries in Entity Framework. Sometimes it is best to just write very specific SQL (Currently working on a CTE recursive query that I wouldn't even know how to begin getting into EF without hitting the DB multiple times). Having SqlQuery<T> available give me complete freedom and allows me to use EF in the same way as Micro ORMS like Dapper to map a specific DTO when it makes sense. I don't wan't to have to map a custom object to my context and use the FromSql implementation off of…

                        94 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 →
                        • AddOrUpdate method

                          It would be great if we can have the AddOrUpdate(...) and AddOrUpdateRange(...) Function in EF7.

                          Just set the expression inside the function or set index and EF check if the to be inserted file need to be added or inserted

                          3 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 POCO views using Entities

                            Currently i have a problem of showing a link between different entities - Say students, courses and lectures. Students have few of the attributes of courses, and lectures also have few overlapping attributes of courses (used via reference keys). To show these 3 entities together in a model / UI view, i will always have a compute a single model and bind it to UI. For each change in entities i have to update model (and vice versa). Instead if i get a new POCO view (assuming its supported by EF), i can always show latest data using the new…

                            3 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  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                            • Ignore Duplicate Inserts

                              On the context simply allow a setting to ignore duplicate insertions. It should just add a not exist sub select query to ensure that a duplicate is not inserted on say a primary key or unique key...

                              This just removes a lot of admin on the insert side of things. If the data is already there why complain about about it unless you need to handle it.

                              This will be exceptionally useful on a many to many insert. If this is in place then I dont need to first check both sides of the insert to ensure that the data…

                              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  ·  Flag idea as inappropriate…  ·  Admin →
                              • Option on Import from DataBase to choose how to resolve the conflicts on object names on differents schemas

                                Add an option when using "update from DataBase" to choose how to resolve conflict name when two or more object have the same names but in diffrents schemas.
                                Auto resolve -> add a number at the end of object name.
                                Suffix or Prefix -> add the schema name to the objects names.

                                1 vote
                                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  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                                • Add option to update model from database project

                                  It would be great to update the EDMX from a database project. Currently we are working with an database project containing the tables, indexes, stored procedures, types etc... If we are able to update the EDMX directly from the database project, it would remove an extra step to connect with a database. In this way, we don't even need a hosted SQL server to update the EDMX.

                                  13 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  ·  tools  ·  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.

                                    10 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  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
                                    • Option in the Ado.net Entity Data Model template to output only the entities in a separate project and let .edmx reference new project

                                      It would simplify N-Tier solutions with Entity Framework tremendously if the Data Access Layer (DAL) which gets the Entity Framework generated models could get the entities (i.e. Employee model), output to a separate project and let the DAL layer still function with the EF diagrams and other things by referencing the separately output project containing the entities. By doing this you will greatly simplify the UI layer needing to reference the entities when asking a Business Logic Layer to perform a service which may require an entity model. The way things are now, if you have a Business Logic Layer…

                                      1 vote
                                      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 →
                                      • Specify which entity has the missing column

                                        It would speed development if the entity that has the missing column is provided to the user. Thanks

                                        0 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  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                                        • Add support for Default Check Constraint

                                          Kindly provide the support for Default Check Constraint, so that we are not forced to supply values to NOT NULL columns that are having a DEFAULT constraint and are being handled in table design.
                                          Currently, work around is to supply some value even is the actual property is NULL

                                          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…)
                                            0 comments  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                                          ← Previous 1 3 4 5 15 16
                                          • Don't see your idea?

                                          Entity Framework Core Feature Suggestions

                                          Feedback and Knowledge Base