Releases: dotnet/efcore
Releases · dotnet/efcore
1.0.4
1.1.1
Bugs Fixed
- Query : SqlServerMathRoundTranslator wrong argument index results in returning incorrect data or throwing InvalidCastException (#7600)
- Fix reflection object equality comparisons. (#7591)
- Query : client-side result operators may cause extensive client-side evaluation for queries with GroupJoins (and/or optional navigations) in a subquery (#7476)
- Some result operators (e.g. Distinct) after selecting a property generate incorrect SQL if query also contains optional navigation or explicit GroupJoin call (#7348)
- EntityEntry.OriginalValues APIs incorrectly return current values (#7332)
- Child entities not persisting when using AddRangeAsync and SaveChangesAsync (#7298)
- Queries fail after upgrading to EF Core 1.1 (#7293)
- Query compilation error or data corruption for queries with GroupJoin wrapped in a subquery when the subset of columns is being projected (#7290)
- Query : Compilation error for queries with optional navigation, client side method and parameter (#7289)
- InverseProperty attribute doesn't always resolve navigation property ambiguity (#7266)
- Infinite loop in compiled query cache (#7230)
- EF Core 1.1 IsModified is not working (#7227)
- EFCore 1.1 doesn't use an existing property for the FK if it's part of the primary key (#7127)
- ThenInclude Method not found (#7116)
- DB query is executed with the parameters of the previous query (#7115)
- KeyAttribute specified on multiple properties creates an incorrect model (#7084)
- Uniquify index names (#7082)
- The binary operator Equal is not defined for the types 'System.Nullable`1[System.Boolean]' and 'System.Boolean' error for queries with complex predicates involving nullable boolean properties (#7061)
- StackOverflowException with InversePropertyAttribute on 1.1.0 (#7057)
- EF Core 1.1 .ToString() translation causes exception (#7048)
- v1.1 - The multi-part identifier "x.Id" could not be bound (#7033)
- [DatabaseGenerated(DatabaseGeneratedOption.Identity)] incorrectly configures the column as SqlServer identity (#7010)
- Materialization uses incorrect column value with multiple derived types and shadow properties (#6986)
- Error when using async queries involving result operators and projecting a collection (N+1 queries scenario) (#6534)
1.1.0
The items listed below were completed after 1.1.0-preview1
. The 1.1.0
release also includes the items listed for the 1.1.0-preview1 release.
Features
- Allow navigation backing fields to be assign-compatible (#6893)
Bugs Fixed
- Breaking changes in 1.1 affecting SapientGuardian MySQL provider (#6926)
- Method not found: 'System.String Microsoft.EntityFrameworkCore.Metadata.Internal.EntityTypeExtensions.DisplayName(Microsoft.EntityFrameworkCore.Metadata.IEntityType)'. (#6914)
- Misspelling in Find() Intellisense (#6876)
- Don't remove unique indexes covered by other unique indexes (#6875)
- NullReferenceException in ForeignKeyPropertyDiscoveryConvention.Apply (#6867)
- Query: Track proper table alias for star projection (#6785)
- LINQ Any() statement generates invalid SQL (#6710)
- Commands: Use MSBuild to get project metadata (#6139)
1.0.2
Features
- Tools: Better ConfigureDesignTimeServices entry point (#5617)
Bugs Fixed
- Query: Entities not being released due to leak in query caching (#6737)
- Query: Regression in 1.0.1 causes query with GroupBy on multiple keys to throw exception (#6620)
- Query: Select with Ternary Operator/CASE-WHEN Server Side Evaluation (#6598)
- Query: Connection is not closed after executing a query including a collection (#6581)
- Query: Take() with Include() generates incorrect SQL (#6530)
- Query: Include() for related collections are dropped when use Skip() (#6492)
1.1.0-preview1
Features
- Make ExecutionStrategy more flexible (#6680)
- Migrations: Detect renamed properties (#6582)
- Memory-optimized table support for Sql Server (#6405)
- Set current/original values directly from dictionary (#6368)
- Support opting out of wrapping database operations in a transaction during SaveChanges() (#6339)
- Make replacing internal EF services easier in the common case (#6306)
- Expose way to get simple, human-readable, representation of the model for debugging (#6304)
- Add string-based Property API that does not require a type (#6303)
- Migrations: Top level APIs for All/Applied/Pending (#6110)
- Top level API to mark a value as temporary. (#6028)
- Add non-generic Find to context (#5998)
- Allow navigation properties to be typed as IEnumerable so long as backed by ICollection (#5771)
- Fluent API: Timestamp/RowVersion (#5554)
- API to get current transaction (#5552)
- Simple way to specify a value generator for a property (#5537)
- Query: Support for String.CompareTo (#5369)
- Implement new architecture of dotnet-ef and PowerShell commands for ASP.NET Core/.NET Core (#5334)
- Make setting navigation property to modified delegate to setting fk property(s) modified (#5114)
- Add QueryTracking behavior to DbContextOptionsBuilder (#5057)
- Add a way to configure property materialization to not use the backing field (#4855)
- Change Tracker: Enable using backing fields (#4461)
- Migrations: verbose logging to include actual sql (#4401)
- Enable model-level entity properties to be associated to a backing field but no property getter or setter (#4357)
- String based Include (#3921)
- Add DbSet.Local (or similar) (#3915)
- Provide an IsUnicode API (#3420)
- Support Enum.HasFlag in LINQ (#2852)
- Commands: Drop Database (#2476)
- RelationalTypeMapper: FK facet propagation (#2455)
- Implement missing APIs from ChangeTacker/Entry (#2295)
- Support AddAsync && AddRangeAsync (#2291)
- Query: Include and ThenInclude should support collection navigation properties that are just IEnumerable (#1481)
- Implement EntityEntry.Reload (#1203)
- Implement relationship access methods on EntityEntry (#1201)
- Implement CurrentValues, OriginalValues, and GetDatabaseValues on EntityEntry (#1200)
- Implement ChangeTracker.HasChanges (#1198)
- Generic string based HasForeignKey (#1172)
- Migrations: Support x64 assemblies in package manager console commands (#1074)
- Add Find method on DbSet (#797)
- Commands: Assembly-based Command Line Interface (ef.exe) (#646)
- Explicit loading support (#625)
- Connection resiliency (#237)
Bugs Fixed
- Review EventId names in Design assemblies (#6807)
- Breaking changes to relational command methods may affect Npgsql provider (#6783)
- Changes in EF Core 1.1 break Npgsql 1.0 provider (#6768)
- Release Microsoft.EntityFrameworkCore.Design version 1.0.1 (#6742)
- API docs for DbContext.Update etc. have incorrect info about state of related entities (#6739)
- Revert 57b7656 once we pick up dotnet/core-setup#423 fix (#6727)
- System.MissingMethodException : Method not found: 'System.Type Microsoft.EntityFrameworkCore.Metadata.IProperty.get_ClrType()' (#6709)
- Provider specific ExpressionFragmentTranslators should override default ones (#6691)
- SaveChanges() deadlocks in overlapping scenarios (#6666)
- Add more error codes to the transient list (#6665)
- Query: Subquery projection being selected incorrectly with required navigation filter (#6657)
- Shadow property naming docs are incorrect (#6655)
- Incorrect table alias name in translated sql (#6636)
- Review provider breaking changes approach (#6622)
- Stop registering ICollectionTypeFactory in D.I. (#6616)
- Query :: we are adding redundant navigation joins to query in some cases, resulting in correct but unnecessarily complex queries (#6609)
- "Operation is not valid due to the current state of the object" in some queries with navigation and paging (#6597)
- Conditional Order By with collection include generates incorrect SQL (#6591)
- Variable in a group JOIN clause added to ORDER BY as a SQL variable (#6580)
- Including an inherited navigation throws IndexOutOfRangeException (#6570)
- EF mismatches the inherited navigation property with the inverse key property (#6554)
- Enable tools to work with 1.0 runtime (#6549)
- Remove ability to force shadowness in core metadata (#6548)
- Change IPropertyBase.DeclaringEntityType to DeclaringType (#6542)
- The instance of entity type X cannot be tracked because another instance of this type with the same key is already being tracked (#6490)
- Property 'Street' is not defined for type 'System.String' then sorting (#6478)
- SQL Server update does not get values updated by trigger. (#6474)
- No server-side handling of Contains (LIKE) on optional relationships (#6473)
- Script-Migration fails for ASP.NET Core project on .NET Framework (#6465)
- SQLite Migrations: Autoincrement annotation not prefixed (#6461)
- Query :: during nav-rewrite we sometimes add null protection logic in places where it's not needed (#6453)
- Query: Joining same entity twice with Skip Take using rownumberpaging throws exception (#6437)
- Query :: NRE protection is not applied to manually created GroupJoin when trying to extract keys from collections potentially containing nulls (#6429)
- EF trying to Insert into Identity field (#6426)
- Incorrect SQL generated for multiple "from" clauses (#6390)
- Migrations scaffolding error when renaming table and adding another table with FK to first table (#6340)
- Query: Projected values can be the wrong type...
1.0.1
Bugs Fixed
- Query: Second level expand not returning correct data (#6366)
- Query: GroupJoin generates LEFT-JOIN and doesn't return all results (#6360)
- ModelBuilder: Confusing exception when mismatched property types are used in a relationship (#6260)
- Migrations: Using name with Script-Migration doesn't work (only ID) (#6228)
- Migrations: Script-Migration doesn't revert -From migration (#6126)
- Query: LoadAsync does not work (#6122)
- SaveChanges: Wrong save order for one to many in combination with multi level inheritance (#6055)
- Query: Wrong data in included navigation when using Skip() method (#5901)
- ModelBuilder: Exception when KeyAttribute used with inheritance (#5898)
- Migrations: RC2 to RTM Regression - Different properties with same name in derived classes cause exceptions (#5894)
- Query: Error using a compare with a nullable boolean (#5877)
- Query: Invalid SQL generated for Guid literals on SQLite (#5801)
- Globalization: Potential bugs due to not specifying culture in string.Format() (#5765)
- Query: Incorrect type mapping chosen for parameter - causes invalid SQL on Postgres (#5717)
- Query: Exception when filter uses subquery and query is executed asynchronously (#5640)
- Query: Exception when projecting navigation property value that could return null, but does not ("Argument Types do not match") (#5522)
- Query: Threading issues cause NullReferenceException in SimpleNullableDependentKeyValueFactory (#5456)
- Query: Exception when filtering on nullable boolean value (through navigation property) (#5454)
- Query: Exception when using OrderBy and navigation ("A column has been specified more than once in the order by list") (#5427)
- Query: Select after complex GroupJoin leads to unpredictable results (#4858)
- Query: Join flattening fails for some cases involving SelectMany (#4539)
- Query: Exception when using the "let" keyword and grouping (#3676)
1.0.0
Features
- Migrations: Scaffold MaxLength (#5223)
- Query: Translate string.IsNullOrEmpty (#5199)
- Migrations PowerShell commands can't work for both EF6 and EF Core projects that are part of the same solution (#5145)
- AddDbContext() is only useful if DbContext will be used in web requests in an ASP.NET application (#4988)
- Use column/property facets for parameter types in Query Pipeline (#4608)
- Query: Translate bitwise operations (#4255)
- Use column/property facets for parameter types in Update Pipeline (#4134)
- Identifier generation strategy in reverse engineering (#3987)
- Support self-referencing overlapping FK/PK (since generated value does not need to be propagated) (#3376)
- Allow named in-memory stores (#3253)
- [Migrations] Implement SqlOperation.SuppressTransaction (#2558)
- Metadata: Allow unbound navigation properties (#2140)
- Handle INotifyCollectionChanged to enable full notification change tracking (#445)
Bugs Fixed
- After second SaveChanges() EF loses added new dependents (#5734)
- Sql Server datetime Data Type Mapped to datetime2 rather than datetime (#5715)
- RC2: Regression with Parent/Child relationship (#5674)
- Invalid SQL statement produced from null-coalescing a nullable boolean (#5652)
- Build warning in GearsOfWarQueryTestBase (#5647)
- Changing a property from modified to unchanged should reject changes (#5645)
- Should MethodInfoExtensions be public in System.Reflection (#5634)
- Move WarningsConfigurationBuilder to Infrastructure (#5633)
- Include closes connection affecting ongoing transaction (#5628)
- EF core RC2 One to One relationship (#5623)
- Commands: Flow info into IDbContextFactory (#5615)
- Metadata: While removing key we may add FK pointing to the key again (#5573)
- Metadata: Exception in model validation if derived type is discovered before base type (#5547)
- Include().ThenInclude and order by throws exception (#5519)
- UWP: property 'Count' not found on type 'System.Collections.ArrayList' (#5517)
- Relational Metadata: Default constraint names reference properties not columns (#5475)
- Migration error with default double value (#5455)
- RevEng: Do not generate ValueGenerated.Never for key columns with default values (#5428)
- CLI Commands: dotnet ef for net451 throws misleading error on Linux (#5418)
- Duplicate foreign key generated after RC1 -> RC2 migration (#5406)
- Migrations: MigrationsSqlGenerator fails to find correct property for column (#5379)
- modelBuilder.Entity(e => { }) can cause StackOverflowException in some cases (#5350)
- Multiple one-to-one relations create duplicate foreign key field. (#5344)
- CLI Commands: support loading startup from a separate project (#5311)
- RevEng: DataAnnotations are not used for column types (#5289)
- Error when Ordering by condition (#5095)
- Commands: WACK binary analyzer fails when adding EF Core in UWP class library (#5069)
- Query: Include & Order By subquery generates invalid query. (#5038)
- DateTime.Parse is evaluated on client (#5035)
- Query: Inheritance filter with "is" performs client evaluation (#5007)
- Query caches property name on EF.Property closure (#4975)
- [RevEng] Revisit whether we need to generate HasComputedValueSql() (#4944)
- Metadata: make ClrType readonly (#4934)
- Query: Use WHERE EXISTS for collection navigation Include (#4903)
- Cannot use "any" in Linq-to-SQL (#4877)
- Add: NullRef when adding graph with shadow keys (#4854)
- FixUp: Collection properties incorrect (#4853)
- ModelBuilder: Shadow property introduction doesn't work without calling Property() (#4843)
- MaterializerFactory throws ArgumentNullException (#4839)
- Adding a large number of entities to the DbContext is slow (#4831)
- Alter column selecting and dropping wrong default constraint (#4821)
- Commands: Don't terminate when Startup isn't constructible (#4710)
- Cannot generate migration in UWP when using Win2D (#4683)
- Migrations finds multiple DbContext when the containing assembly defines multiple localized resx resources (#4606)
- Use existing DB with numeric(18,0) primary keys (#4594)
- Sort out design time interaction with Startup in ASP.NET Core (#4546)
- SqlServerDatabaseCreator: Exists() check stuck in long timeout loop (#4454)
- ModelSnapshot is different after migration is added and then removed (#4382)
- Problem with OriginalValue and INotifyPropertyChanging (#4375)
- Null ref when attempting to back propagate non-existent results (#4347)
- MaxLength not honored on proeprties in derived types (#4146)
- Command "ef migrations add MyModel" crashes with StackOverflowException when virtual or static properties on class. (#4078)
- Migrations: AddColumn, AddForeignKey, etc. use new table name before it's renamed (#3990)
- Change tracking doesn't handle empty property name properly (#3625)
- Throw before saving if temp values are present and won't be generated by the database (#3425)
- RevEng: Split Relationship Fluent API Line in OnModelCreating() (#3394)
- Update Pipeline: Use C# null semantics for WHERE clauses (concurrency tokens) (#3023)
- Identity map must be updated when sidecar values are discarded after failed SaveChanges (#448)
1.0.0-rc2
Features
- Query: Sargability of string literals in combination with non-Unicode columns (#4686)
- CLI Commands: Support .NET Framework-only projects (#4577)
- Revisit using DbSet property names for table names by default (#4540)
- Change default graph behavior of Add/Attach/etc (#4424)
- ModelBuilder: Avoid "guessing" principal/dependent in 1:1 relationships (#4313)
- Reveng: entity class properties in the same order of table fields (#4062)
- Commands: .NET Core CLI Implementation (#3925)
- Better experience/support for migrations in class library (#3879)
- Reverse Enginer: Support type aliases (user-defined data types) (#3843)
- Commands: Look for ConfigureServices in Program (#3802)
- Query: Support in-memory processing of INTERSECT,CONCAT,EXCEPT,UNION (#3638)
- Make it easy to create a provider configured ModelBuilder (#3529)
- Scaffolding: reverse engineer sequences (#3510)
- Add a guard to prevent interleaving of async calls (#3291)
- Reverse Engineer: Can we just scaffold string properties for
xml
,hierarchyid
,geography
,geometry
, etc (#3076) - Metadata: Allow indexes and foreign keys to use inherited properties (#2514)
- Migrations: Separate statements with empty lines (#1951)
- Support for inserting/updating tables with triggers (not use OUTPUT when batching off) (#1441)
- Code First: One-to-one FK APIs should introduce shadow properties (#1124)
- Commands: PMC cmdlets for xproj (#978)
Bugs Fixed
- Migrations: Error when adding migration to directory outside of project (#5277)
- CLI Commands: migrations not added to relative-up output directories (#5187)
- Exception message when updating to RC2 (#5076)
- SQL Client: Unable to load DLL 'sni.dll' (#4953)
- Investigate test regression in SQL Client on Linux (#4915)
- Using ForeignKeyAttribute to control the name of a FK property unexpectedly swaps principal and dependent sides and sets cardinality to 1:1 (#4909)
- Shadow FK created by replicating the property type from principal key are non-nullable (#4895)
- Boolean condition with non entity member in where() throw exception (#4868)
- Changes in derived related entities are not detected (#4817)
- Timestamp/IsConcurrencyToken causes invalid UPDATE if no data modified (SQLServer) (#4814)
- Windows 10 UWP with Sqlite: remove-migration error (#4812)
- Latest RC2 packages do not install in latest UWP builds (#4802)
- Migrations :: exception thrown when trying to add migration using regular dotnet project (csproj) (#4796)
- Validate that all leaves in the entity types hierarchy are concrete (#4793)
- [Nightly] Base DbContext prefers parameterless constructor when injected (#4784)
- Suggestion: More detailed exception message for missing custom discriminator value. (#4776)
- Metadata :: null argument in ReferenceBuilder (#4715)
- cannot add EFCore.Relational build 20093 to .NET 4.5.1 class library (#4708)
- RevEng: SQL Server Provider: Update tables metadata query for SQL Server 2016 (#4697)
- ModelBuilder fails depending on properties names (#4682)
- CLI Commands:
dbcontext scaffold
has two -s options (#4677) - Exception msg for properties not included in the model (#4627)
- Filtering NVARCHAR column is missing "N" when using string literal (#4622)
- Cannot add Microsoft.EFCore.Relational.Design.FunctionalTest package to test project (#4613)
- Query: Revisit Enumerable.Contains command caching (#4605)
- Error when querying with two Contains statements (#4597)
- Partial updating with InMemoryDatabases (#4527)
- Reconsider ValueGeneratedOnAddOrUpdate + HasDefaultValueSql = Computed Column (#4501)
- Property mapping validation provides unhelpful message for primitive type that cannot be mapped (#4484)
- SQL Server batching with Identity columns fails for image, text, and ntext columns (#4478)
- Shadow Property - ChangeTracker Modified State (#4474)
- SqlitePropertyBuilderExtensions have wrong generic constraints on PropertyBuilder extensions (#4469)
- Setting principal key should run fk discovery convention (#4451)
- SQL Server bulk insert doesn't allow inserting varchar column values longer than 1 character (#4399)
- Calling ICollection<>.Contains() with a nested propery throws an InvalidOperationException (#4394)
- OnModelCreating : ValueGenerated.OnAddOrUpdate results in ValueGeneratedOnAdd() (#4328)
- Migration dropping foreign key and re-creating (#4325)
- Only discover properties with public getter and public/private/etc. setter (#4314)
- RevEng: generated props .HasMaxLength(x).HasColumnType("varchar") create varchar(1) columns in DB (#4312)
- Specified cast is not valid (#4308)
- Query optimization: Remove unnecessary conditionals and casts from generated SQL (#4304)
- Query: ICollection<>.Contains() with a sub query throws SqlException (#4302)
- Prevent DbContext.Set() from creating sets for types not in the model (#4301)
- dnx ef dbcontext scaffold generates improper WithMany definitions on related model? (#4298)
- Mapping column to UInt32 throws an invalid cast exception (#4287)
- Configuring default value with fluent API doesn't support enum value without explicitly casting to int (#4286)
- error mapping sql types in derived types (#4251)
- TPH does not enforce unique discriminator values (#4170)
- Scaffold a subset of tables - silently ignores / skips tables that cannot be found (#4168)
- EntityFramework.Commands don't support dotnet5.4 framework (#4143)
- Unable to add EntityFramework.Relational NuGet package to PCL (#4102)
- InvalidCastException when filtering a projected list (#4094)
- Inserted entities has different ID (DB vs instance) after SaveChanges (#4080)
- TPH: Validate shared columns and constraints (#4074)
- Migration fails for class with multiple self references ([#4069](#4...
7.0.0-rc1
Features
- A way to use custom migrations directory? (#3243)
- DNX Commands: Add --json switch for tool-consumable output (#2883)
- DNX Commands: Verbose switch (#2871)
- RevEng: allow the user to select which tables from the database to use (#2751)
- DNX Commands: Enable DbContext and Startup in different projects (#2679)
- Align property discovery convention with type mapping (#2588)
- Code First: Implement inheritance support (#1704)
- Commands: Add IDbContextFactory (#639)
- .NET Native support (#623)
- Relational: TPH inheritance mapping pattern (#247)
Bugs Fixed
- ModelCleanupConvention: Collection was modified after the enumerator was instantiated (#3552)
- Regression? Foreign key properties now based on type name rather than property name (#3503)
- Colour migrations (#3450)
- Value generation error in case of inheritance (#3445)
- FromSql throws ArgumentNullException when passing a null parameter (#3432)
- RevEng: Generate partial classes (#3428)
- Build warnings from TelemetrySource in tests (#3422)
- Facing 'multiple assemblies with equivalent identity' on .NET 4.5 with latest build (#3407)
- Collection navigation properties without setter not detected (they were in EF6) (#3396)
- KeyAttributeConvention throws while composite keys used with inheritence (#3280)
- RevEng: datetime field with default constraint generates warning (#3250)
- RevEng: varchar column with default null constraint generates warning (#3249)
- RevEng: smallint column with default null constraint generates warning (#3248)
- RevEng: Unnecessary usings in entity class code (#3229)
- RevEng: Namespace is missing first character (#3228)
- RevEng: Provide default context name when unspecified (#3227)
- Inheritance :: error when adding Customer and VipCustomer to a db set in one "save changes" (#3161)
- Commands: Start a new namespace when generating migrations for a different context (#3124)
- RevEng: Remove our Razor dependency (#2947)
- Conventions: Key discovery not firing for added shadow properties (#2944)
- DbContext configured with an external DbConnection raises an exception when the DbConnection is already opened. (#2909)
- RevEng: Keys/AlternateKeys/Indexes (#2840)
- Relational: Add a validation rule to ensure unique column names (#2813)
- Multiple calls to FromSql with stored procedure results in errors (#2420)
- Commands: Discover contexts registered in the service provider (#2293)
7.0.0-beta8
Features
- RevEng: Allow absolute output paths (#3131)
- Support for Database Schema on the Model Builder (#2875)
- Migrations: Scaffold RestartSequence when StartValue changes (#2811)
- RevEng: Change output directory (and namespace) (#2750)
- Migrations: Get active provider (#2258)
- Migrations: Add ApplyMigrationsAsync (and related async methods) (#2212)
- Add support for execution of a raw command on the data store (#1863)
- Commands: Error gracefully on non-relational providers (#1652)
- Commands: Review what info we print on error (#1044)
Bugs Fixed
- SQLite RevEng: Context is always named ModelContext (#3164)
- NuGet Commands: No stack trace is shown (#3135)
- KeyDiscoveryConvention is not completely undone when configuring a different property as key (#3010)
- Possible null ref in RelationalParameter (#3002)
- "Malformed" SQL generated by MigrationSqlGenerator (#2950)
- foreign key in TPH (#2887)
- SqlServer: Error when applying a second migration - Issue with default values on bit columns (#2802)
- Remove-Migration does not delete file from *.csproj (#2690)
- additional migration tries to redefine existing identity columns resulting in incorrect T-SQL syntax (#2070)