Releases: ardalis/Specification
v9.3.1
v9.3.0
What's Changed
- Avoid List allocation for PostProcessingAction. by @fiseni in #501
- Redefine WithProjectionOf as an extension to Specification instead of ISpecification by @fiseni in #517
- Rename TagWithEvaluator to QueryTagEvaluator. by @fiseni in #512
- OneOrMany implementation by @fiseni in #507
- Refactor the state of where expressions as OneOrMany. by @fiseni in #508
- Refactor the state of order expressions as OneOrMany. by @fiseni in #509
- Refactor the state of include expressions as OneOrMany. by @fiseni in #510
- Refactor the state of search expressions as OneOrMany. by @fiseni in #511
- Consolidate OneOrMany implementation and its usage. by @fiseni in #513
- Add a fallback to LINQ for search evaluators/validator in case of custom user specifications. by @fiseni in #514
- Update dependencies. by @fiseni in #526
- Use opencover format for coverage reports. by @fiseni in #503
- Added Full Build workflow that publishes coverage reports. by @fiseni in #504
- Add benchmarks project. by @fiseni in #505
- Cleanup by @fiseni in #518
- Add new test fixtures for EF6 provider. by @fiseni in #519
- Add tests for EF6 evaluators. by @fiseni in #520
Full Changelog: v9.2.0...v9.3.0
v9.2.0
v9.1.0
v9.0.1
v9.0.0
What's Changed
- Update TFMs and reorganize solution. by @fiseni in #439
- Revise EF Core dependencies per TFM. by @fiseni in #449
- Refactor specification constructors as public. by @fiseni in #431
- Remove IEntity contract. by @fiseni in #432
- Reduce the size of specifications and avoid unnecessary memory allocations by @fiseni in #441
- Fix InMemory SearchExtension bug by @fiseni in #391
- Update and improve the builder infrastructure. by @fiseni in #442
- Improve search validator and in-memory evaluator. by @fiseni in #443
- Optimize the search EF evaluator. by @fiseni in #444
- Optimize include evaluators. by @fiseni in #447
- Simplify and minimize expression containers. by @fiseni in #448
- Add TagWith and IgnoreAutoIncludes features. by @fiseni in #451
- Add WithCacheKey extensions. by @fiseni in #452
- 397 make fields and methods protected by @eldamir in #398
- Update repository methods. by @fiseni in #450
- Refactor the test suite by @fiseni in #437
- Update GitHub workflows to use Linux hosts. by @fiseni in #440
- Update Readme files. by @fiseni in #453
- Add tests by @fiseni in #454
- Prepare for publish, version 9.0.0 by @fiseni in #455
New Contributors
Full Changelog: v8.0...v9.0.0
Breaking Changes
The "standard" use of the library remains fairly intact.
- The obsolete
GetBySpecrepository methods are removed. - The
IEntityinterface is removed. - The
Select/SelectManyare applied at the end of the chain or in a separate Query clause. These extension methods return void and no further chaining is possible.
In this version, we refactored the internals and the building blocks significantly. The "advanced" use cases are affected by these changes. Users who have custom extensions or have been relying on the internals need to migrate accordingly.
- The expression collections no longer are initialized to a new
List<T>by default and will returnEnumerable.Empty<T>if empty. - The default value for
TakeandSkipproperties no longer isnull. They're updated to a non-nullableinttype with a default value of-1. - The specification constructors no longer accept
IInMemorySpecificationEvaluatorandISpecificationValidatorparameters. The properties are still defined as virtual and can be overridden. - The builder infrastructure is refactored to accommodate better flow for specs with projections. All extensions should be written for both
ISpecificationBuilder<T>andISpecificationBuilder<T, TResult>builders. - The
OrderedSpecificationBuilderandCacheSpecificationBuilderare removed. - The in-memory
SearchEvaluatoris renamed toSearchMemoryEvaluator. - The
IncludeEvaluator.DefaultandIncludeEvaluator.Cachedsingleton instances are removed. Instead, use theIncludeEvaluator.Instance. - The
SpecificationEvaluatorno longer acceptsbool cacheEnabledparameter. The caching is applied by default wherever necessary. - The
EntityType,PropertyType, andPreviousPropertyTypeare removed fromIncludeExpressionInfo. - The
UpdateandDeleterepository methods returnTask<int>(the affected rows).
v8.0
What's Changed
- Add AsTracking feature. by @fiseni in #338
- Update LangVersion. Consolidate styling and conventions. by @fiseni in #345
- Add sample applications. by @fiseni in #347
- Add net6.0 TFM for EntityFramework6 package. by @fiseni in #348
- Create new CI and Release workflows. by @fiseni in #350
- Add scripts for test and coverage reports. by @fiseni in #351
- Dummy PR to test the triggers. by @fiseni in #352
- Update the action status badge in Readme. by @fiseni in #353
- Add more samples. by @fiseni in #354
- Add script for SQL Local DB setup. by @fiseni in #357
- Refactor and improve integration test fixtures. by @fiseni in #360
- Talpers/delete range by spec by @thorstenalpers in #369
- Add messages to obsolete specs for clarity by @Rowe2ryWA in #373
- Update CONTRIBUTING.md by @sadukie in #374
- Publish version 8.0 by @fiseni in #355
New Contributors
- @thorstenalpers made their first contribution in #369
- @Rowe2ryWA made their first contribution in #373
- @sadukie made their first contribution in #374
Full Changelog: v7.0...v8.0
v7.0
What's Changed
- Patch 2 by @davidhenley in #283
- Fix
Just the Docslink in docs home page by @snowfrogdev in #293 - Update url path by @ta1H3n in #303
- Implement SelectMany support by @amdavie in #320
- Add two methods for consuming repositories in scenarios where repositories could be longer lived (e.g. Blazor component Injections) by @jasonsummers in #289
- Added support for AsAsyncEnumerable by @nkz-soft in #316
- Lamadelrae/doc faq ef versions by @lamadelrae in #324
- Updated projects, drop support for old TFMs. by @fiseni in #326
- Update the search feature to generate parameterized query. by @fiseni in #327
- Add support for extending default evaluator list by @fiseni in #328
- Ardalis/cleanup by @ardalis in #332
New Contributors
- @snowfrogdev made their first contribution in #293
- @ta1H3n made their first contribution in #303
- @amdavie made their first contribution in #320
- @jasonsummers made their first contribution in #289
- @nkz-soft made their first contribution in #316
- @lamadelrae made their first contribution in #324
Full Changelog: v6.1.0...v7.0
v6.1.0
Added AddRangeAsync. #239
Added dictionary as arbitrary state for specifications. #248
Added support for updating specifications. #251
Updated base specifications as non-abstract classes. #252
Update the infrastructure for single result specifications. #272
Added UpdateRangeAsync. #272
Add WithSpecification overload for specifications with Select. #273