Releases: dotnet/efcore
EF Core 8.0.2
EF Core 8.0.2 is available on NuGet now. This is a patch release of EF Core 8 (EF8) containing only important bug fixes:
- Adding EF.Constant to prevent parameterization in query
- Nav expansion visitor does not visit the Contains item argument
- SqliteException "no such column : rX.value" when ordering on subquery value in combination with a "where contains" when upgrading from 7 to 8.0.0-rc.2.23480.1
- DB Context pooling with proxies resulting in memory issues in 8.0 RC2
- Nav expansion visitor does not visit the non-lambda arguments (Skip, Take, ElementAt)
- LINQ "Contains" generates SQL with wrong char length
- Using new[] in select query gives exception .NET 8
- EF Core Cosmos 7.0.13 => 7.0.14 Value cannot be null. (Parameter 'derivedType')
- New OpenJSON expression to SQL translation breaks aggregates on subquery with 'Cannot perform an aggregate function on an expression containing an aggregate or a subquery' exception
- Did Contains stop working on empty list in EF Core 8?
- LINQ "Contains" fails to generate SQL with custom converter
- error on working with explicit many-to-many relations with OnDelete.Restrict
- Lazy loader throwing invalid operation exceptions
- Cosmos provider v7.0.14 and v8.0.0 breaks previous OwnsMany behaviour
- Constructor not found for type 'Microsoft.EntityFrameworkCore.ChangeTracking.Internal.NullableClassCurrentProviderValueComparer
- Inconsistent behavior related to relationship cycle
- Property conversions are lost on base type is subtype is registered to model afterwards after upgrade to EFCore 8
- Incorrect parameter rewriting for string StartsWith/EndsWith/Contains
- Migrations bug when creating stored procedure with GOTO statement
- Unable to Scaffold DBContext if tables in SQL Server have certain names
- Contains translates to correlated query when the item is nullable
- FluentAPI configuration PrimitiveCollection on OwnedNavigationBuilder returns PropertyBuilder instead of PrimitiveCollectionBuilder
- String comparison fails when using const and compiled Models.
- Exception when writing a JSON column with negative enum value
- Getting errors when mixing DbFunction and SqlQueryRaw
EF Core 7.0.16
EF Core 7.0.16 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:
EF Core 6.0.27
This is a patch release of EF Core 6.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.1.26.
EF Core 8.0.1
EF Core 8.0.1 is available on NuGet now. This is a patch release of EF Core 8 (EF8) containing only important bug fixes:
- EFC8: Lazy Loading regression on newly created objects
- EfCore 8: Primitive collections in JSON documents error with init
- Buffering error in JSON deserialization with junk data
- Contains fallback translation fails when the array parameter has AsQueryable
- QueryableMethodNormalizingExpressionVisitor does not visit recursively when converting List.Contains to Queryable.Contains
- SqlNullabilityProcessor ignores Contains item visitation
- SensitiveDataLogging with ComplexProperty: Unable to cast RuntimeComplexType to type IEntityType
- JSON materialization code should be resilient to incorrect JSON documents
EF Core 7.0.15
This is a patch release of EF Core 7.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 7.0.14.
EF Core 6.0.26
This is a patch release of EF Core 6.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.1.25.
EF Core 8 (EF8)
EF Core 8 (EF8) is available from NuGet
EF8 contains many new features and enhancements, including:
- Allow Multi-region or Application Preferred Regions in EF Core Cosmos
- Use C# structs or classes as value objects
- Support primitive collections in the compiled model
- Migrations and model snapshot for primitive collections
- Query: add support for projecting JSON entities that have been composed on
- SQLite: Add EF.Functions.Unhex
- Add type mapping APIs to customize JSON value serialization/deserialization
- SQL Server Index options SortInTempDB and DataCompression
- Analyzer: warn (and code fix) for use of interpolation in SQL methods accepting raw strings
- Translate Contains to IN with subquery instead of EXISTS where relevant
- Allow inline primitive collections with parameters, translating to VALUES
- Translate DateOnly.FromDateTime
- Implement JSON serialization/deserialization via Utf8JsonReader/Utf8JsonWriter
- Update pattern for scaffolding column default constraints
- Use IN instead of EXISTS with ExecuteDelete and entity containment
- Allow ExecuteUpdate to update properties of multiple queries as long as the map to a single table
- Query: add support for projecting primitive collections from JSON entities
- Switch to storing enums as ints in JSON instead of strings
- Translate DegreesToRadians
- Metadata and type mapping support for primitive collections
- JSON type representations and conversions to store types
- Allow stripping away all model building code to reduce application size
- Json: add support for collection of primitive types inside JSON columns
- Support LINQ querying of non-primitive collections within JSON
- SQLite RevEng: Sample data to determine CLR type
- Allow default value check in value generation to be customized
- Update handling of non-nullable store-generated properties
- IN() list queries are not parameterized, causing increased SQL Server CPU usage
- Allow 'unsharing' connection between contexts
- Remove unneeded subquery and projection when using ordering without limit/offset in set operations
- Make SequentialGuidValueGenerator non-allocating
- Support querying over primitive collections
- JSON/Sqlite: use -> and ->> where possible when traversing JSON, rather than json_extract
- Add Generic version of EntityTypeConfiguration Attribute
- NativeAOT/trimming compatibility for Microsoft.Data.Sqlite
- Map collections of primitive types to JSON column in relational database
- Translate DateTimeOffset.ToUnixTime(Seconds|Milliseconds)
- Allow pooling DbContext with singleton services
- Optional RestartSequenceOperation.StartValue
- Generate compiled relational model
- Global query filters produce too many parameters
- Optimize update path for single property JSON element
- JSON columns can be used in compiled models
- Unneeded parentheses removed in SQL queries
- Set operations are supported over non-entity projections with different facets
- Json: add support for Sqlite provider
- SQL Server: Support hierarchyid
- Configuration to opt out of occasionally problematic SaveChanges optimizations
- Add convention types for triggers
- Translate element access of a JSON array
- Raw SQL queries for unmapped types
- Support the new BCL DateOnly and TimeOnly structs for SQL Server
- Translate ElementAt(OrDefault)
- Opt-out of lazy-loading for specific navigations
- Lazy-loading for no-tracking queries
- Reverse engineer Synapse and Dynamics 365 TDS
- Set MaxLength on TPH discriminator property by convention
- Translate ToString() on a string column
- Generic overload of ConventionSetBuilder.Remove
- Lookup tracked entities by primary key, alternate key, or foreign key
- Allow UseSequence and HiLo on non-key properties
- Pass query tracking behavior to materialization interceptor
- Use case-insensitive string key comparisons on SQL Server
- Allow value converters to change the DbType
- Resolve application services in EF services
- Numeric rowersion properties automatically convert to binary
- Allow transfer of ownership of DbConnection from application to DbContext
- Provide more information when 'No DbContext was found' error is generated
EF Core 8 contains work from the EF Team at Microsoft (@bricelam @roji @AndriySvyryd @maumar @ajcvickers) as well as contributions from the EF Core community. The community PRs in EF8 are:
- @ErikEJ:
- Update issue templates by ErikEJ · Pull Request #29470 · dotnet/efcore (github.com)
- Reverse engineering of Dynamics CRM TDS endpoint and Synapse Serverless SQL Pool by ErikEJ · Pull Request #29122 · dotnet/efcore (github.com)
- Check for SQL Server VIEW DEFINITION rights fails, if databasename contains special chars by ErikEJ · Pull Request #29612 · dotnet/efcore (github.com)
- Make EngineEdition more readable by ErikEJ · Pull Request #31038 · dotnet/efcore (github.com)
- Fix FK duplicate detection bug by ErikEJ · Pull Request #31181 · dotnet/efcore (github.com)
- Add DateOnly.FromDateTime query mapping for SQL Server by ErikEJ · Pull Request #31180 · dotnet/efcore (github.com)
- @DoctorKrolic:
- Remove unnecessary dependency on MS.CA.VB package by DoctorKrolic · Pull Request #29986 · dotnet/efcore (github.com)
- Refactor internal usage analyzer by DoctorKrolic · Pull Request #30767 · dotnet/efcore (github.com)
- Add analyzer/codefix for usage of interpolated strings in raw query methods by DoctorKrolic · Pull Request #30835 · dotnet/efcore (github.com)
- Refactor analyzers' test infrastructure by DoctorKrolic · Pull Request #30814 · dotnet/efcore (github.com)
- @stevendarby:
- Don't duplicate query filter parameters by stevendarby · Pull Request #29422 · dotnet/efcore (github.com)
- Allow changing an open connection if it's not owned by stevendarby · Pull Request #30706 · dotnet/efcore (github.com)
- [Allow DI for pooled DbContexts by stevendarby · Pull Request #30739 · dotnet/efcore (github...
EF Core 7.0.14
This is a patch release of EF Core 7.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 7.0.13.
EF Core 6.0.25
This is a patch release of EF Core 6.0 containing only updates to dependencies. There are no additional fixes in this release beyond those already shipped in EF Core 6.1.24.
EF Core 7.0.13
EF Core 7.0.13 is available on NuGet now. This is a patch release of EF Core 7 containing only important bug fixes:
- Update from ef 6 to ef 7. Error getting base type entities where one child has a required navigation property
- Incorrect translation of comparison of current value with owned type default value
- GroupBy generates invalid SQL when using custom database function
And also the following bug fixes from EF Core 6.0.24: