Releases: dotnet/efcore
Releases · dotnet/efcore
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...
2.0.0-preview2
Features
- Pragma out obsolete warnings in generated code (#8703)
- Consider Removing HasNonDefaultUnicode and HasNonDefaultSize (#8668)
- Simplification of cascade delete fluent API (#8654)
- Exists check logs error "An error occurred using the connection..." (#8651)
- Request: A DeleteBehavior that does absolutely nothing on delete and on SaveChanges (#8633)
- Consider moving DeleteBehavior enum to core namespace (#8632)
- MigrationsScaffolder is a public type registered in D.I. with no contract or dependency objects (#8623)
- Replace RelationalTypeMapping.GenerateLiteral(DbType) (#8609)
- Query: reuse include pipeline for queries projecting uncomposed collection navigations (#8584)
- Update ExecuteSqlCommand methods to use string interpolation (#8557)
- API Review: Make DbContextFactoryOptions obsolete (#8553)
- RevEng: Prefer [StringLength] over [MaxLength] on string properties (#8468)
- Make query parameter format for logging consistent (#8456)
- Tools: Block .NET Standard startup projects (#8452)
- Update: Relational: Potential optimization in MERGE SQL batching path? (#8415)
- Throw error on ignored includes (#8398)
- Consider throwing when a DIET instance is shared (#8387)
- Query: perform null protection pattern (a != null ? a.Name : null) to NullConditionalExpression (a?.Name) translation on QueryModel level (#8385)
- EnableRetryOnFailure defaults don't cover SQL Azure recommended retry period (#8275)
- Consider removing UseSqlServerIdentityColumn and ForSqlServerUseSequenceHiLo (#8271)
- Design: Discover DbContext types using Program.BuildWebHost() (#8164)
- Add very simple "type mappings" for non-relational providers (#8010)
- Feature request: add instanceId (Guid) to RelationalDataReader for DiagnosticSource (#8007)
- Investigate using IConfiguration in OnConfiguring (#7916)
- Trace connection open and close in RelationalConnection (#7479)
- Self-contained type mappings (#7434)
- Add a version of the ExecuteInTransaction() that supports specifying the isolation level (#7431)
- Provide access to referencing entity in TrackGraph (#7389)
- Query: Add support for User Defined Scalar Functions. (#7368)
- Better way to get application services from within a derived DbContext instance (#7185)
- Warn for non-nullable store-generated bool properties (#7163)
- Query: Translate String.CompareTo() (#7095)
- Xamarin support (#4269)
- Complex types and/or value objects (#246)
Bugs Fixed
- Query: Projecting second level collection navigation using First() generates invalid SQL (#8823)
- Migrations: Ignore RelationalAnnotationNames.TypeMapping while generating model snapshot file (#8665)
- Remove SqlServer TypeMapping for CLR type char (#8656)
- HasQueryFilter supporting any other type than string? (#8630)
- Migrations: InsertData() causes error "Table 'table_name' does not have the identity property. Cannot perform SET operation." (#8618)
- HasFilter generating migrations with string quotes missing (#8575)
- Design: Exception using Program.BuildWebHost (#8547)
- Tools: Default to Development environment (#8514)
- Query: SubQueryMemberPushDown optimization is too aggressive, which may lead to invalid sql or data corruption (#8505)
- non latin characters in migration name (#8483)
- DbContext.GetInfrastructure() method missing in 2.0 preview? (#8440)
- Query: ProjectStar table is set incorrectly in JoinEliminator (#8412)
- CLI Tools: --configuration switch does not work (#8399)
- Query: null propagation optimization doesn't work for navigations with composite keys (#8397)
- Query: EntityEqualityRewritingExpressionVisitor doesn't work with object.Equals method (#8366)
- Query: comparing collection navigations to null or to each other doesn't work (#8364)
- Tools: Improve message "Could not load assembly 'EFCore.Design'." (#8354)
- Argument types don't match for queries projecting conditional expression with anonymous type result (#8315)
- Query: Select with new DTO taking entity in constructor argument throws ArgumentException (#8282)
- Null semantics are not carried from subquery (#8254)
- Query: navigation rewrite fails for queries with navigation inside a subquery inside join inner key selector (#8216)
- Hidden columns are scaffolded (#8192)
- PMC Tools: Exception calling "Substring" (#8163)
- CLI Tools: Hide build success output (#8048)
- Query: we should propagate optional navigations thru nav rewrite, if the initial optional navigation was created using SelectMany-GroupJoin-DefaultIfEmpty (#7975)
- GroupBy needs a ToList before to work (#7943)
- Query: compilation error for complex query with SelectMany, optional navigation, subquery and string concat in projection (#7921)
- Inheritance does not discover Id as PK by conventions (#7885)
- ExecutionStrategyExtensions.ExecuteInTransactionAsync null reference exception (#7795)
- Query: NullConditional is not added to some complex queries with optional navigation and collection with subquery (#7787)
- Query : Missing null propagation logic for some complex queries with manually created GroupJoin-SelectMany-DefaultIfEmpty (#7761)
- Throw if the FK properties set by the convention are ambiguous in the hierarchy (#7736)
- PMC Tools: Error when project opened from a file share (#7540)
- PMC Tools: Error when using Docker tools (#7439)
- DbSet<>.Local InvalidOperationException with ListBox.ItemsSource (#7397)
- ModelValidator: Do not warn for explicitly configured shadow keys (#7238)
- ConventionSet API XML Document Error (#7177)
- ModelBuilder: Do not silently remove key when a property is made optional (#6919)
- ExecutionStrategy ctor argument - maxRetryCount has incorrect documentation (#6828)
- Migrations: Parameterless DbContext constructor is used in preference to overload taking DbContextOpti...
2.0.0-preview1
Features
- Query: Anonymous type projections should use member names as column aliases wherever possible (#8204)
- Migrations: Specify NULL columns explicitly in DDL (#8146)
- Query: Lift subquery with nested orderby (#8054)
- Query: Implement "Like" function in core (#8004)
- Query: Prevent client evaluation when subquery returning entity is compared to null (#7915)
- Query: Improve SQL for queries with left join that generate subqueries due to discriminator predicate (#7689)
- Infrastructure: Allow custom SQLite builds (winsqlite3, SQLCipher, etc.) (#7667)
- Query: Remove redundant compilations of subquery models when processing MainFromClause, AdditionalFromClause and Join/GroupJoin clauses (#7647)
- Query: Flatten out subquery models at query optimizer (#7613)
- Query: Apply optimizations to composite predicates in all parts of the query (#7608)
- Query: Add missing translators for Math functions in SqlServer provider (#7601)
- Query: Prevent client evaluation if query modifiers precede condition (#7560)
- Infrastructure: Avoid reference counting for open and close in SQLite provider (#7527)
- DbContext: Require name for "persistent" in-memory database and add explicit API for creating transient database (#7482)
- Infrastructure: Add parameter objects and service rewriting code to avoid breaking base class D.I. constructors in patch/point releases (#7465)
- Infrastructure: Allow only one database provider per service provider (#7457)
- Query: Improved performance for String.StartsWith() filters (#7429)
- Migrations: CLI Tools: Honor ASPNETCORE_ENVIRONMENT (#7353)
- Query: Translate Distinct to SQL when applied after custom projection (#7234)
- Infrastructure: Improve experiece for filtering log data (#7217)
- Model configuration: Set ValueGenerated for store-generated properties using a convention (#7205)
- Query: Translate Average to server side (#7190)
- Migrations: Make generated code play well with StyleCop (#7189)
- Query: Translate querys with filter on sub-query to a single SQL statement (#7122)
- Infrastructure: Trace when query is done. This is needed in order to get SelectRows statistics. (#7105)
- Query: Prevent client evaluation when using certain result operators in complex query (#7096)
- Model configuration: Make filtered indexes play nice with other providers (#7087)
- Infrastructure: Improve Exception message: Unable to create or track an entity of type 'abc' because it has a null primary or alternate key value. (#7001)
- Infrastructure: Make RelationalFullAnnotationNames public (#6993)
- DbContext: Stop special-casing the root entity on Attach (#6990)
- DbContext: Throw on AddDbContext with options lambda when context has no options ctor (#6963)
- Infrastructure: Convert more services to be singletons (#6924)
- Performance: Implement DbContext pooling for high scale scenarios (#6923)
- Query: Allow providers to replace and extend SqlTranslatingExpressionVisitor (#6888)
- Query: Avoid adding unnecessary sort columns in query with projection and optional navigation properties (#6861)
- Model configuration: Ability to override IS NOT NULL clauses of an index (#6794)
- Query: Translate DateTimeOffset.Date (#6778)
- Migrations: Handle GO statements in SQL Server (#6747)
- Query: Simplify aliases for complex projection if being used in order by clause (#6703)
- Reverse engineering: Add IsConfigured check to avoid using hard-coded connection when previously configured (#6686)
- SaveChanges: Database.SetCommandTimeout overload that accepts a TimeSpan argument (#6614)
- Query: Prevent client evaluation and N+1 queries when calling result operators before other operators (#6611)
- Query: Issue warning for queries with paging operations (First, Take, Skip) without OrderBy (#6576)
- Query: Throw better exception when reading incorrect data for relational providers (#6471)
- Query: Ix-Async dependency updated to 3.1 (#6328)
- Query: Using Include and referencing a navigation property will not result in repeated joins (#6206)
- Migrations: SQL Server Filtered Indexes (#5817)
- Query: Model-level filters for queries (#5774)
- Reverse Engineering: Enable pluralization/singularization when scaffolding a model from a database (#3060)
- Query: Provide EF.Functions to define methods that correspond to standard SQL operations (#2850)
- Model configuration: Entity type configuration can be factored into a class (#2805)
Bugs Fixed
- Migrations: Exception thrown with model containing TPH in certain cases: The entity type should derive from to reflect the hierarchy of the corresponding CLR types. (#8423)
- DbContext: Owned entity types are incorrectly identified as tracked when clr types contain Equals implementation (#8284)
- Query: The generated identifiers in multi level queries are too long for SQLServer (#8255)
- Query: projecting stringColumn.Length may cause invalid cast exception, if the stringColumn is of type (n)varchar(max) on SqlServer (#8176)
- EntityType marked with NotMapped is still discovered by Conventions (#8151)
- Query: ProjectionShaper ignores the offset while Shaping (#8095)
- Query: Order by with condition evaluating to true/false produces invalid SQL (#8092)
- Reverse engineering: Scaffold-DbContext creates invalid code for default constraints with line breaks (#8077)
- Query: Navigation rewrite: EF.Property navigations not rewritten correctly (#8068)
- Query: The binary operator Equal is not defined for the types 'System.Nullable`1[System.Boolean]' and 'System.Boolean'. (#8065)
- Query: Make our reflection info selection logic deterministic (#8060)
- Query: QuerySourceTracingExpressionVisitor doesn't always prune EF.Property expressions (#8053)
- Query: Inner Join not generated when using custom projections or wrong alias when omitting custom projections (#8043)
- Query: SqlServerStringReplaceTranslator fails with Sequence contains more than one matching element on the latest runtime (#8021)
- Query: Unable to cast object of type when using Include in projection (#8005)
- Reverse engineering: Scaffold-DbContext can generate IsRequired() on nullable unique column if it is also an FK ([#7956](https://github.com/aspn...
1.1.2
Features
- Port #7710 to 1.1.2 - Tools: Allow script/update etc. to run when context is not in target project, but can be found in services (#7711)
Bugs Fixed
- Tools: Port #7889 to 1.1.1 (#8142)
- QueryCache: Memory leak when using dbContext.Set<> in subquery (#8063)
- EF Core 1.1.1 has introduced a new ArgumentException for complex queries with with subqueries, if the same subquery is present multiple times in the query model (#7944)
- Port #7769 (missed reflection equality fixes) to patch? (#7899)
- Invalid query produced when projecting DTO containing subquery that returns a single element (#7714)
- Metadata: Stackoverflow on unambiguous model with InverseProperty on navigations on both directions (#7698)
- Scaffold-DbContext does not emit warning messages for failed entity generation (#7315)
- SaveChanges closes connection opened by user using EF API (#6968)
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)