-
Notifications
You must be signed in to change notification settings - Fork 254
Closed
Milestone
Description
We're storing the Include expressions as LambdaExpression in the specification. We have no other choice, we can not store the sub-chains in generic form.
Then, in the evaluator, we call the EF generic methods through reflection. To optimize the reflection calls, we have a cached implementation where we create and cache proxy delegates. This improves performance significantly. Currently, this implementation is an opt-in feature.
I think we should finally make this implementation the default one. We need to clean it up a bit and make some further optimizations.
Breaking Changes:
- The common use of this library will remain unchanged.
- The
SpecificationEvaluatorno longer acceptsbool cacheEnabledparameter. - The include string evaluation is extracted in a separate
IncludeStringEvaluatorconstruct. - The
IncludeEvaluator.DefaultandIncludeEvaluator.Cachedsingleton instances are removed. Instead, use theIncludeEvaluator.Instance.
Metadata
Metadata
Assignees
Labels
No labels