Skip to content

Releases: dotnet/efcore

1.0.6

15 Nov 04:58
Compare
Choose a tag to compare
Update patch build to latest dependencies

1.1.3

15 Nov 05:43
Compare
Choose a tag to compare

Bugs Fixed

  • [Port to patch] Query: Make ParameterExtraction recursive on closure members (#9105)
  • [1.1.2 regression] The multi-part identifier "ts.Id" could not be bound (#8862)
  • [Port to patch] Migrations: Parameterless DbContext constructor is used in preference to overload taking DbContextOptions (#8825)

2.0.0

14 Aug 13:04
Compare
Choose a tag to compare

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...
Read more

2.0.0-preview2

28 Jun 06:29
Compare
Choose a tag to compare
2.0.0-preview2 Pre-release
Pre-release

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...
Read more

2.0.0-preview1

10 May 04:22
Compare
Choose a tag to compare
2.0.0-preview1 Pre-release
Pre-release

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...
Read more

1.1.2

01 Jun 19:57
Compare
Choose a tag to compare

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

01 Jun 19:55
Compare
Choose a tag to compare

Features

  • Design: Allow script/update etc. to run when context is not in target project, but can be found in services (#7710)

Bugs Fixed

  • Could not load System.Diagnostics.DiagnosticSource (#7889)

1.1.1

07 Mar 18:59
Compare
Choose a tag to compare

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

16 Nov 16:26
Compare
Choose a tag to compare

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

13 Dec 17:29
Compare
Choose a tag to compare

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)