@@ -69,5 +69,23 @@ public static Query<T> WithNotAll<T, T1>(this QueryBuilderExpression<T, IEnumera
69
69
var lambda = Expression . Lambda < Func < T , bool > > ( Expression . Not ( expression ) , queryBuilderExpression . _expression . Parameters ) ;
70
70
return queryBuilderExpression . _continueWith ( new Query < T > ( lambda ) ) ;
71
71
}
72
+
73
+ public static Query < T > EqualToSequence < T , T1 > ( this QueryBuilderExpression < T , IEnumerable < T1 > > queryBuilderExpression , IEnumerable < T1 > other )
74
+ {
75
+ var otherEntity = Expression . Constant ( other , typeof ( IEnumerable < T1 > ) ) ;
76
+ var method = typeof ( Enumerable ) . GetMethods ( ) . FirstOrDefault ( m => m . Name == "SequenceEqual" && m . GetParameters ( ) . Length == 2 ) ? . MakeGenericMethod ( typeof ( T1 ) ) ;
77
+ var expression = Expression . Call ( method , queryBuilderExpression . _expression . Body , otherEntity ) ;
78
+ var lambda = Expression . Lambda < Func < T , bool > > ( expression , queryBuilderExpression . _expression . Parameters ) ;
79
+ return queryBuilderExpression . _continueWith ( new Query < T > ( lambda ) ) ;
80
+ }
81
+
82
+ public static Query < T > NotEqualToSequence < T , T1 > ( this QueryBuilderExpression < T , IEnumerable < T1 > > queryBuilderExpression , IEnumerable < T1 > other )
83
+ {
84
+ var otherEntity = Expression . Constant ( other , typeof ( IEnumerable < T1 > ) ) ;
85
+ var method = typeof ( Enumerable ) . GetMethods ( ) . FirstOrDefault ( m => m . Name == "SequenceEqual" && m . GetParameters ( ) . Length == 2 ) ? . MakeGenericMethod ( typeof ( T1 ) ) ;
86
+ var expression = Expression . Call ( method , queryBuilderExpression . _expression . Body , otherEntity ) ;
87
+ var lambda = Expression . Lambda < Func < T , bool > > ( Expression . Not ( expression ) , queryBuilderExpression . _expression . Parameters ) ;
88
+ return queryBuilderExpression . _continueWith ( new Query < T > ( lambda ) ) ;
89
+ }
72
90
}
73
91
}
0 commit comments