Change Log

v1.8.0

2024-02-11

Added

Date Data Type: Added support for the "Date" data type, enabling straightforward searches for date values in your dynamic queries.

Changes & Enhancement

Enhanced Value Validation: Introduced strict value validation based on data types for precise query execution.

  • For the "Guid" type, values must be parsed to GUID or an error will be raised.

  • For the "Number" type, values must be parsed to byte, short, int, long, float, double, or decimal; otherwise, an error will be raised.

  • For the "Boolean" type, values must be parsed to bool; otherwise, an error will be raised.

  • For the "Date" or "DateTime" type, values must be parsed to DateTime; otherwise, an error will be raised.

v1.7.2

2024-02-09

Changes & Enhancement

List Property Search Fix: Resolved an issue where searching within properties inside lists using Any was causing incorrect field representation. Now, the library intelligently handles properties within lists using reflection.

v1.7.0

2023-11-05

Added

Select Columns with Precision

With the new Select feature, you can now specify exactly which columns you want to retrieve from your data source. Whether you're querying a single table, working with complex joins, or utilizing DynamicWhere.ex in your projects, you can tailor your query to return only the data you need.

Integration Across Multiple Layers

We've seamlessly integrated the Select feature into various parts of DynamicWhere.ex:

  • Filter: You can now apply column selection when defining filter conditions, ensuring that the returned results contain only the columns you specify.

  • Segment: For those who work with complex queries or need to segment their data, the Select functionality is fully compatible, allowing you to select columns at the segment level.

  • Individual Function: We've also introduced a standalone Select function, making it easy to apply selective column projection to any query.

v1.6.0

2023-09-30

Changes & Enhancement

  • PageBy Validation (Breaking Change): Added validation to the PageBy class for pagination settings to ensure PageNumber and PageSize are zero or positive numbers.

  • Improved ToListAsync Implementation: Enhanced the code implementation of the ToListAsync method in the Segment class for improved efficiency and readability.

Added

  • Enhanced Segment Ordering: The Segment class now supports an optional list of OrderBy objects for specifying sorting criteria in dynamic queries.

  • New ToListAsync Method: Introduced a new extension method, ToListAsync, to filter and paginate IQueryable<T> sources based on a Filter configuration.

These changes in version 1.6.0 enhance the usability and maintainability of DynamicWhere.ex, empowering you to work with dynamic queries and paginated data more effectively.


v1.5.0

2023-09-22

Changes & Enhancement

Modified the ToListAsync<T>(this IQueryable<T> query, Segment segment) method to return a SegmentResult<T> instead of a List<T>.

Now, when executing an asynchronous query using this method, you will receive a SegmentResult<T> object, which contains the list of query results that match the specified conditions within the Segment, along with pagination information if provided.

This change enhances the flexibility of result management, allowing you to access both the query results and pagination details in a structured manner.


v1.4.3

2023-09-22

Added

Optional pagination feature to the Segment class:

You can now include a "Page" object within the Segment to specify pagination settings, such as "PageNumber" and "PageSize". This allows for more fine-grained control over the results returned by dynamic queries.

Pagination settings applied at the Segment level ensure that the pagination is performed on the final result set, providing you with precise control over how the entire query result is paginated.


v1.4.1

2023-09-18

Enhanced Flexibility

  • The Filter configuration in dynamic queries has been improved for greater flexibility.

  • ConditionGroup, Orders, and Page objects are now nullable within the Filter class.

  • This change allows you to use any combination of ConditionGroup, Orders, or Page based on your specific query requirements.

  • If any of these objects are set to null, they will not impact the query, providing more adaptable and versatile query configurations.


v1.4.0

2023-09-14

Added

  • Added support for pagination, allowing users to specify page numbers and page sizes using the PageBy class.

  • Implemented the ability to define sorting criteria using the OrderBy class.

  • Introduced the Filter class, enabling users to configure complex dynamic queries.


v1.3.0

2023-09-13

Refactored

  • Refactored and improved codebase for better maintainability.

  • Added comprehensive documentation, summaries, and comments to enhance code readability.

  • Introduced meaningful names and structuring to make code cleaner and more understandable.


v1.2.0

2023-09-12

Added

  • Added support for the GUID data type, allowing filtering and comparisons using GUID values.

  • Enabled case-insensitive comparisons for text data types.

  • Introduced the ability to specify nested property names in conditions.


v1.0.0

2023-09-11

Initial Release

The DynamicWhere.ex library is released, providing dynamic querying capabilities for LINQ queries.

Last updated