Releases: dotnet/efcore
2.1.2
The 2.1.2 release to NuGet contains issues that were fixed in the 2.1.3 release of the ASP.NET Core metapackage, and hence are tracked on this GitHub repo in the 2.1.3 milestone.
2.1.1
2.1.0
More than 500 bug fixes and enhancements have been made since EF Core 2.0 was released. Because EF Core is developed as an open-source project on GitHub, a complete list of these changes can be found in the GitHub issue tracker:
Changes from 2.1-rc1 to 2.1.0
Changes from 2.1-preview2 to 2.1-rc1
Changes from 2.1-preview1 to 2.1-preview2
Changes from 2.0 to 2.1-preview1
You can read more about this release on the .NET Blog announcement post.
In EF Core 2.1 the dotnet ef
command-line tools have been integrated into the .NET Core SDK, but the new versions of the tools cannot be used with EF Core versions older than 2.0. For information on how to install and use dotnet ef
tools with different versions of EF Core, see https://go.microsoft.com/fwlink/?linkid=871254.
2.1.0-rc1
This release includes the following new enhancements and bug fixes: https://github.com/aspnet/EntityFrameworkCore/milestone/39?closed=1
2.1.0-preview2
Features
- Data Seeding: Enable for InMemory (#11474)
- Allow precision on type mappings with scale (#11439)
- Perf: make TypeMappingInfo a struct (#11424)
- Query: rewrite predicate with constanList.Any(e =>e == someProperty) to Contains (#11389)
- Consider making RelationalTypeMappingInfo concrete (#11363)
- Feature parity: Add IQueryTypeConfiguration (#11257)
- Consider renaming the Attributes package to Abstractions and moving other types there (#11170)
- Possible issue in RelationalTypeMappingExtensions.CloneWithFacetedName (#11167)
- Consider moving attributes to new Attributes package (#11144)
- Property expression exception for fluent api should be more explicit (#11135)
- EF migration MigrationBuilder.InsertData enables IDENTITY_INSERT when it is not needed. (#11115)
- ValueComparers, mappings and genericity (#11072)
- Reveng: custom naming of properties, dbset and entity? (#11056)
- Query: Make EF.Functions.DateDiff SqlServer specific (#11038)
- Using IQueryable.Contains() in an expression causes a memory leak (#11015)
- Update SQL Server and SQLite type mappings to not use fallbacks (#10987)
- Query: convert ExpressionEqualityComparer to a singleton (#10983)
- Benchmarks: Run EF Core dev benchmarks with netcoreapp2.1 runtime (#10972)
- Review log-levels for 2.1 logging (#10966)
- Exception when removing migration (#10921)
- Add events for entity state changes (#10895)
- For API review: Consider renaming fluent method SeedData() to HasData() or HasSeedData() (#10875)
- Update API test for fluent method chaining (#10863)
- Decide on which constructor to call by convention (#10852)
- Tools: Consolidate -Force and -Revert on Remove-Migration (#10781)
- Query: remove redundant ToList calls on top of correlated collections that get optimized (#10762)
- Query: we inject redundant MaterializeCollectionNavigation calls into some queries that take advantage of correlated collection optimizations (#10733)
- CompareString in VB Project will be evaluated locally (#10707)
- Add MaterializationContext parameter object (#10641)
- EF Core Drop Database Command runs the "ConfigureServices" method twice (#10636)
- Change parameter log formatting to not show DbType = String when it isn't (#10634)
- Question:Design Core(Rev Eng):Context Class: How to add namespace while generating Context class (#10629)
- CLI Tools: Convert to a Dotnet (global) Tool (#10554)
- Make IEntityEntryGraphIterator public (#10540)
- Sqlite: Translate DateTime.Millisecond (#10523)
- Implement lazy-loading of navigation properties (#10509)
- Allow a second type argument AddDbContext to support inheritance (#10451)
- Add logging event for client-side cascade delete (#10435)
- Update "More than twenty 'IServiceProvider'..." message to be more helpful (#10235)
- Mix of owned and normal entity types in hierarchy should cause validation error (#10200)
- Better SaveChanges exception messages for "conceptual nulls" (#10170)
- HasIndex does not work as expected (#10135)
- Better LINQ support for Microsoft.SqlServer.Types (#10109)
- DbSet.Find for null values (#10096)
- Query: Translate GroupBy constant value followed by aggregate as table aggregate (#9969)
- EF generates very unclear error message in case too generic key types in M:M relationship (#9817)
- Data type 'nvarchar' is not supported in this form should also say which property (#9761)
- Support change tracking of non-primitive types (#9753)
- Update DeleteBehavior.Restrict to not apply when navigations are changed (#9703)
- Improve exception for incorrect FK value (#9696)
- Re-consider how default values are reverse engineered (#9627)
- Throw better exception for .Set() (#9626)
- Consider simplifying roadmap page (#9615)
- Metadata: Implement IsFixedLength API (#9579)
- Query: Apply CompositePredicateExpressionVisitor to join predicates (#9395)
- Remotion Linq: Upgrade package to RTM version (#9311)
- efcore2 warns about default values for bool (#9291)
- Add generic overloads for relationship API with navigations passed as strings (#9191)
- Make warning as error exception more helpful (#9178)
- Expose ChangeTrackingStrategy on IEntityType and IMutableEntityType (#9087)
- Allow fields to be used for navigation 'properties' (#9059)
- Query: Filter out entities that are using table splitting with a derived type (#8973)
- Improve the conceptual null exception (#8365)
- Improve SaveChanges circular dependency exception (#8363)
- TrackGraph stop tracking if current State is not set, but setting state throw InvalidOperationException (#8226)
- Warn when runtime version newer than tools (#7065)
- Minor: if possible improve error message (add UK to message also) (#5944)
- Query: Allow EF.Property to be used for navigations. (#4834)
- Support specifying a default value for a column corresponding to an enum model property (#4081)
- Support for database enums (#3620)
- Reverse Engineer: Allow reading connection strings from configuration (#2464)
- Logging: add to Change Tracker (#221)
Bugs Fixed
2.0.1
Features
- Update reverse engineering of non-nullable bool columns with default values for SQL Server (#9826)
- Should quirk switch names contain bug number? (#9608)
- UWP compat: .NET Native tracking perf improvements (port to patch) (#9492)
Bugs Fixed
- Regression in 2.0.3 preview: NullReferenceException in RelationalDataReader.Dispose() on Migrate() (#10147)
- System.ArgumentOutOfRangeException after upgrade to EF Core 2.0 (#10045)
- Scaffolding fix for nvarchar(4000) (port to patch) (#9963)
- Enum.ToString() results in SQL translation and returns underlying integer value (#9894)
- GroupJoin to parent with no child throws invalid operation exception (#9892)
- Access to context bound variable can incorrectly be optimized out (#9825)
- Update of owned entity fails (#9803)
- Metadata: Discovering derived type with self ref relationship before base causes exception (#9704)
- Exception in Client vs. Server Evaluation with async/await in EF Core 2.0.0 (#9570)
- Expression of type 'System.Object' cannot be used for parameter of type 'Microsoft.EntityFrameworkCore.Metadata.IEntityType' (#9551)
- ModelBuilder: stackoverflow for may be invalid relationship via fluent api (#9478)
- Diagnostics logging is incompatible with windows EventLog (#9437)
- UWP compat: Don't use reflection on emitted types (port to patch) (#9355)
- Migrations after field rename with Datetime type doesn't work (#9344)
- Query: Output parameter in FromSql is always null (#9309)
- Remove-Migration null-refs when generating report (#9280)
- Projection with nested projection hangs/does not complete in 2.0 Preview 2 (#9128)
- Including collection navigation after optional navigation throws NRE with async in 2.0.0 (#9038)
1.1.4
1.0.6
1.1.3
Bugs Fixed
2.0.0
Features
- Configure logging internally to not filter out Debug messages (#9083)
- React to feedback on warning as error for ignored calls to Include() (#9064)
- Add DbContext Validate to CLI/PS commands (#9052)
- Query: Make ExecuteSqlCommand to accept SqlParameters in different patterns (#8939)
- Post-process model snapshot to massage metadata (#8925)
- Databinding: Guide users to not bind against queries directly (#8899)
- Log a message with EF version information (#8893)
- SQL Server RevEng: Scaffold IsRowVersion for timestamp columns (#8892)
- Throw better exception when app might be using old ASP.NET pattern (#8888)
- Validate keys are not configured as AddOrUpdate/Computed (#8863)
- Improve exception message for underconfigured 1-to-1 relationships (#8857)
- Remove RelationalAnnotations.GetAnnotation(annotationName) (#8848)
- AddDbContext with ServiceLifetime.Scoped should pass scoped IServiceProvider to optionsAction (#8797)
- RevEng: Don't indent #warning (#8778)
- RevEng: Remove DbDataReaderExtension (#8712)
- Query/Test: introduce client-side ordering to QueryTests without explicit orderby, rather than using contains in the result verification (#8617)
- Query: Add Support for DateTimeOffset.Add* functions (#8590)
- CLI Tools: Add --runtime (#8479)
- Reverse engineer bool column with default constraint to nullable bool property (#8400)
- Cannot insert entity into DB using attach and EntityState.Added (#8264)
- Add parameterless overload of HasDefaultValueSql (#7872)
- Provide good feedback when providers don't implement services (#7469)
- Relax derived FK overlapping PK restriction (#7181)
- Query: Better warning and XML doc comments about ignored Includes (#7162)
- Design: Public API to instantiate DbContext classes (#7050)
- Reverse Engineer: Cmd parameter to disable naming logic (#6018)
- Make set discovery a separate service (#977)
Bugs Fixed
- Query: Included navigations are not fixed up in loaded related data (#9271)
- CLI throws: Unable to retrieve project metadata. (#9127)
- Fix .HasIndex generic type argument for owned types (#9106)
- Tools: Ignore errors in design time DbContext discovery (#9073)
- EF Core 2.0.0-preview3-26027 NullReferenceException on RelationalCommand (#9041)
- Query: compilation error for queries with Concat on two entities and Count (#9004)
- Detached entities appear in ChangeTracker.Entries() (#8921)
- QueryCache misses for dynamically created queries with ConstantExpresssions or nested MemberExpressions from closure (#8909)
- SqlServer: Literals with real type is always considered float type (#8905)
- RevEng: Default index names scaffolded (#8891)
- Metadata: Convention does not create relationship after Fluent API resolves ambiguity (#8886)
- GetDatabaseValues should always call IgnoreQueryFilters() (#8883)
- Design: Debug log messages not reported on the console (#8879)
- Changing RowNumberPaging should cause new internal service provider to be built (#8877)
- "Given key was not present in the dictionary" after migration to 2.0 (#8817)
- CLI Tools: Error when MSBuildProjectExtensionsPath doesn't exist (#8816)
- Query: manually created GroupJoin with order by key descending generates invalid SQL (#8754)
- Query: FromSql with DbParameters throws Must declare the scalar variable/No mapping to a relational type ... SqlParameter (#8721)
- Snapshots can lose annotations on non-primary keys (#8716)
- RevEng: Pass in correct argument values to ScaffoldingTypeMapper (#8697)
- MySQL:.GroupBY() thrown exceptions (#8693)
- SQL Server RevEng: No ForSqlServerIsClustered(false) on NONCLUSTERED PKs (#8687)
- HasMaxLength(4000) set to NVARCHAR(MAX) (#8685)
- InvalidCastException when casting from one value type to another in a simple select statement (#8652)
- Calling new DateTime() in projection causes NullReferenceException. (#8608)
- Entity Class with Enum : long property does not translate into BigInt when using Enum.HasFlag (#8538)
- Query: compilation error for queries with navigations inside set result operators and Count (#8525)
- Query: incorrect sql generated for query with owned entities, left join and predicate using inner qsre (#8492)
- InvalidOperationException updating an entity with CurrentValues.SetValues throws InvalidOperationException when the SetValues parameter does not contain a required field data. (#8465)
- Unable to cast object of type 'PropertyExpression' to type 'NullConditionalExpression' for some queries with include, and multiple orderbys (#8369)
- SQL for string-updates sometimes uses nvarchar(450) if a string field is used in an index (not key) (#8322)
- When I remove entities in the dbContext, they are still in navigation properties of the entities (#8319)
- Revisit concurrency detector (#8305)
- Query: Some double & float literals are wrong (#8270)
- Attaching entity and setting different IsModified values to different property prevent update (#8265)
- Query: ulong literal throws RuntimeBinderException (#8259)
- Concatenated string sequence as primary key - Insertion fail via EF code (#8239)
- DbSet.Find() doesn't work for nullable properties (#8189)
- Navs: nav expansion on GJ QSRE in projection doesn't introduce parameter (#8186)
- Memory leak in LocalView (#8144)
- One-to-one relationship with bad data behaviors differently for bi-directional verses uni-directional relationships (#8137)
- InvalidOperationException: "Collection was modified" inside NavigationFixer (#8101)
- Exception when setting the default value for a nullable int field (#8015)
- RelationalDiagnostics: Naming inconsistencies (#8001)
- Identifying shadow FK values are not propagated when tracked as unchanged or modified (#7985)
- PropertyEntry.CurrentValue should throw an exception (#7920)
- Somehow a mism...