Feature | Is supported |
---|---|
Null safe | |
Validation | |
EF Core | |
EF 6 | |
External Comparer |
Validation result
Error
"Object is lower than or equal to [{GreaterThan}]".
"Object is greater than [{GreaterThan}]" - for negation.
Parameters
Parameter | Description |
---|---|
GreaterThan | Limit passed in constructor. |
Info
Checks if candidate object is greater than expected value.
Specification for comparison use (in order):
IComparer<T>
- if available.- > operator - if defined for T.
CompareTo()
method - if T implementsIComparable<T>
.CompareTo(Object)
method - if T implementsIComparable
.
Note that, null
is always the lowest value.
Usage
var spec = Specification.GreaterThan<double?>(1.45);
spec.IsSatisfiedBy(1.43); // false
spec.IsSatisfiedBy(5.0); // true
spec.IsSatisfiedBy(null); // false
As property
var customerSpec = Specification.GreaterThan<Customer, int>(
c => c.CustomerId, 100);
customerSpec.IsSatisfiedBy(new Customer { CustomerId = 1 }); // false
customerSpec.IsSatisfiedBy(new Customer { CustomerId = 100 }); // true
Not Greater Than
var spec = Specification.NotGreaterThan<double?>(1.45);
spec.IsSatisfiedBy(1.43); // true
spec.IsSatisfiedBy(5.0); // false
spec.IsSatisfiedBy(null); // true
As property
var customerSpec = Specification.NotGreaterThan<Customer, int>(
c => c.CustomerId, 100);
customerSpec.IsSatisfiedBy(new Customer { CustomerId = 1 }); // true
customerSpec.IsSatisfiedBy(new Customer { CustomerId = 100 }); // false
Comparer
GreaterThanSpecification<T>
supports IComparer<T>
.
var spec = Specification.GreaterThan<double>(
0.0045, Comparer<double>.Default);
EF 6 support
GreaterThanSpecification<T>
works correctly in EF 6 solution, when T is primitive or enum type.
Non primitive types, may generate NotSupportedException
.