You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This greatly simplifies the usage if you need to apply a specification to some collection you already have in hand. Not rarely, in your domain model, you might need to filter a given collection (it might be the navigation of your entity). If that action is required in several places, you may want to encapsulate it in a separate specification, and then just apply it wherever you need it. That's the use-case, generally.
Since the in-memory evaluator operates against in-memory collections, it acts independently from the plugin packages (EFCore, EF6). Therefore, all ORM-specific features that the specification may contain are excluded from this evaluation. The following features won't be evaluated:
Include chains
AsNoTracking
AsSplitQuery
AsNoTrackingWithIdentityResolution
But, unfortunately, since the Search feature is evaluated to SQL Like by the plugin packages, it is excluded as well. This is quite inconvenient. If I have applied Search in my specification, I'd like to be processed during in-memory evaluation too.
The solution would be to implement the SQL LIKE operator in C#. But, LIKE is a very rich and powerful operator with plenty of options, and trying to match and mimic the behavior is not a simple task.
I'm open to ideas here. Does anyone know of such an implementation?
My first thought was to check how that is implemented in EntityFrameworkCore.SQLite. This SO post might also be helpful
The text was updated successfully, but these errors were encountered:
Starting with version 5 of the package, we introduced in-memory evaluators. The usage is as follows:
This greatly simplifies the usage if you need to apply a specification to some collection you already have in hand. Not rarely, in your domain model, you might need to filter a given collection (it might be the navigation of your entity). If that action is required in several places, you may want to encapsulate it in a separate specification, and then just apply it wherever you need it. That's the use-case, generally.
Since the in-memory evaluator operates against in-memory collections, it acts independently from the plugin packages (EFCore, EF6). Therefore, all ORM-specific features that the specification may contain are excluded from this evaluation. The following features won't be evaluated:
But, unfortunately, since the
Search
feature is evaluated to SQLLike
by the plugin packages, it is excluded as well. This is quite inconvenient. If I have appliedSearch
in my specification, I'd like to be processed during in-memory evaluation too.The solution would be to implement the SQL
LIKE
operator in C#. But,LIKE
is a very rich and powerful operator with plenty of options, and trying to match and mimic the behavior is not a simple task.I'm open to ideas here. Does anyone know of such an implementation?
My first thought was to check how that is implemented in
EntityFrameworkCore.SQLite
. This SO post might also be helpfulThe text was updated successfully, but these errors were encountered: