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. IObjectSet .Find() Medhod

    IObjectSet .Find() Medhod

    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…)
      1 comment  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
    • Entity Framework maping data definition language of Description schema

      @code first
      The Name property can mapping DDL of Description schema
      public class Person
      {
      public int Id { get; set; }

      [Description("姓名")]
      public string Name { get; set; }
      }

      @database first
      Description schema can convert property's DescriptionAttribute

      @SQL
      CREATE TABLE [ConsoleApplication3.MyDbContext].dbo.People (
      Id int IDENTITY,
      Name nvarchar(max) NULL,
      CONSTRAINT [PK_dbo.People] PRIMARY KEY (Id)
      ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
      GO

      EXEC sp_addextendedproperty N'MS_Description',
      N'姓名',
      'SCHEMA',
      N'dbo',
      'TABLE',
      N'People',
      'COLUMN',
      N'Name'
      GO

      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 →
      • Change Entity Framework behavior when constructing it(EF automatically fetches tables' structure from master.INFORMATION.SCHEMA.TABLES)

        EF automatically fetches tables by accessing the master.INFORMATION_SCHEMA.TABLES. It will cause problem when I have no permission to get access to the master database on a web server.
        A good solution could be the way how LINQ2SQL get tables(users have to drag tables they want into the O/R designer).

        Please let me know when are you going to update this behavior, coz I'm going to start a new project very soon and really want to use EF.

        Cheers,

        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  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
        • Add-Migration should check for Name-Resolution Conflicts before allowing a Name

          For Code-First migrations, if I happen to add a new ClassName (and associated DbSet to my context) and then go on to Add-Migration ClassName then a migration is generated, but the build starts to fail because the migration picks the same name as the ClassName (or something along those lines).

          Although the problem is relatively easy to fix (thus far I have removed the migration class and regenerated with a different name) it would be preferable if the problem did not occur in the first place; either by disallowing migration names with a pre-existing name, or perhaps there is a…

          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 →
          • UseSQLite() / UseSqlServer() / UseInMemoryStore() / UseAzureTableStorage() .... is this the right approach?

            I've been following the very interesting EF7 presentation on Channel 9.

            In that presentation, provider specific code was used to address different kinds of data storage.

            I'm used to code as provider agnostic as possible and have any connection details stored in configuration, not code. The current EF7 approach, however, appears to result in spaghetti (= too many "if" = [I]talian [F]ood).

            Hence, I suggest to omit the requirement for these calls and shift provider selection back to the configuration file.

            This would result in the following strategy:

            Using dependency injection, Microsoft (and others) may provide NuGet packages for each…

            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 →
            • Conditional table splitting with 1 to 0..1 relationship.

              Sometimes I want to move one or more properties of an entity to a separate class.

              This is possible with a 1 to 1 relationship, however, there is no option to do this with a 1 to 0..1 relationship, where if the properties are null relationship is 0, otherwise it is 1.

              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 →
              • 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 →
                • 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  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                  • A Collection which automatically sets the parent property on add

                    class Product {
                    Category Category;
                    }
                    class Category {
                    [ParentProperty("Category")]
                    ParentHashSet Products
                    }

                    var prod = new Product();
                    var cat = new Category();

                    cat.Products.Add(prod);
                    Assert.AreEqual(cat, prod.Category);

                    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  ·  runtime  ·  Flag idea as inappropriate…  ·  Admin →
                    • ObjectContext.CreateObject(Type t) needed

                      I am creating a mapping layer, and would like to dynamically determine the concrete POCO to use when creating an object throught the ObejctContext. I need to be able to pass the Type object into CreateObject.

                      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 →
                      • Model Browser Rename/Delete Options

                        It would be great to have rename and delete options from the model browser, plus the ability to multi select for deleting.

                        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  ·  tools  ·  Flag idea as inappropriate…  ·  Admin →
                        • Improve datbase object selection step in EDMX wizard

                          Tables/Views/Procedures selection screen/step in wizard intuitiveness must be improved with Search function and Add/Remove using two listboxes.

                          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  ·  Flag idea as inappropriate…  ·  Admin →
                          • Materialized event but where is the De-materialize event or override?

                            We need to encrypt data (in use via WPF databinding) during the EF4.2 context.SaveData() process. Can't find a place to encrypt without the UI showing the encrypted data. We need a De-materialize or something that allows encryption without affecting the UI. If it's already available, I can't find it. Essentially need the opposite of Materialized event.

                            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 →
                            • Support ObjectContext.Translate on joined result sets

                              We sometimes end up doing 20 or more result sets in a single stored proc. Many times, a large majority of these are to bring back a single entry for each navigation property mapping.

                              I would like to see a "wide" translate function.
                              If a query has:
                              SELECT a.*, b.*, c.*, d.*

                              I'd like to see a version of Translate that can map each row to 4 separate object types, using the assumption that all of object A's columns are first, followed by B's, etc.

                              This would greatly reduce the size of our stored procs, though there could be a…

                              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 →
                              • Azure Storage

                                I know it was said that Azure Table Storage support will come after the SQL Server support for ASP .Net 5 is done.

                                I'm just saying, I still want this as soon as possible.

                                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 →
                                • Designer Option to Support Conversion Mapping from DateTime to DateTimeOffset

                                  Request Designer Option to Support Conversion Mapping from DateTime to DateTimeOffset in light of community opinion seeminly moving toward DateTimeOffset as a standard. In fact, OASIS OData v4 pruned DateTime in favor of DateTimeOffset.

                                  Unfortunately, modifying database schema is much easier said than done. Entity should have some sort of automapping/conversion to support the get/set between the persistence and poco layers.

                                  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  ·  Flag idea as inappropriate…  ·  Admin →
                                  • Logging of underlying stored procedure and actual SQL call

                                    In production environments, there is always a requirement to log the underlying SQL calls when a WCF/Web site calls database and executes store procedures or any other SQL statement. Right now, via Entity framework there is no way that we can retrieve the actual SP call so that it can be logged for trouble-shooting purposes.
                                    It would be great if the product team can create some handle to get this information!

                                    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 →
                                    • DbContext Generator/Reverse Engineer Code First features should generate POCOs with virtual properties to enable change tracking proxies

                                      Currently, the EF 4.x DbContext Generator code generation item as well as the Reverse Engineer Code First menu item generates POCO classes that only have virtual on navigation properites. Hence, a lazy loading proxy will be generated for the classes at runtime. However, a change tracking proxy will not be generated. This causes performance problems if you have a lot of objects in the object context. Please at least add an option for making all the properties virtual, or, just make it do that by default.

                                      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 →
                                      • 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 →
                                        • Support another Entity as a Key

                                          Since all entities require a key, declaring an entity 'A' as a key in another entity 'B', EF could lookup the key for that entity (A), and use it as the key for this entity (B) too. This keeps the model classes in .NET "clean" in the sense they don't need to duplicate they key field. E.g.

                                          class A {
                                          string Key { get; set; }
                                          }

                                          class B {
                                          A Key { get; set; }
                                          //Not required, since A has a key defined on it already, and our key is of type A
                                          //string KeyWhenPersistedToARelationalDatabase { get; set; } …

                                          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 →
                                          • Don't see your idea?

                                          Entity Framework Core Feature Suggestions

                                          Feedback and Knowledge Base