Closed
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
SpecificationEvaluator
no longer acceptsbool cacheEnabled
parameter. - The include string evaluation is extracted in a separate
IncludeStringEvaluator
construct. - The
IncludeEvaluator.Default
andIncludeEvaluator.Cached
singleton instances are removed. Instead, use theIncludeEvaluator.Instance
.
Metadata
Metadata
Assignees
Labels
No labels