public AndSpec(LinqSpec <T> spec1, LinqSpec <T> spec2) { this.spec1 = spec1; this.spec2 = spec2; // combines the expressions without the need for Expression.Invoke which fails on EntityFramework this.expression = VaBank.Common.Data.Linq.ExpressionCombiner.And(spec1.Expression, spec2.Expression); }
public bool Equals(LinqSpec <T> .NegateSpec <TArg> other) { return(this.spec.Equals(other.spec)); }
public NegateSpec(LinqSpec <TArg> spec) { this.spec = spec; this.expression = System.Linq.Expressions.Expression.Lambda <Func <TArg, bool> >( System.Linq.Expressions.Expression.Not(spec.Expression.Body), spec.Expression.Parameters); }
public OrSpec(LinqSpec <T> spec1, LinqSpec <T> spec2) { this.spec1 = spec1; this.spec2 = spec2; this.expression = VaBank.Common.Data.Linq.ExpressionCombiner.Or(spec1.Expression, spec2.Expression); }
public bool Equals(LinqSpec <T> .AndSpec other) { return(this.spec1.Equals(other.spec1) && this.spec2.Equals(other.spec2)); }