@@ -145,13 +145,25 @@ public virtual SqlExpression<T> Where()
145
145
146
146
public virtual SqlExpression < T > Where ( string sqlFilter , params object [ ] filterParams )
147
147
{
148
- whereExpression = ! string . IsNullOrEmpty ( sqlFilter )
149
- ? sqlFilter . SqlFmt ( filterParams )
150
- : string . Empty ;
151
-
152
- if ( ! string . IsNullOrEmpty ( whereExpression ) )
153
- whereExpression = ( WhereStatementWithoutWhereString ? "" : "WHERE " ) + whereExpression ;
154
-
148
+ AppendToWhere ( "AND" , sqlFilter . SqlFmt ( filterParams ) . SqlVerifyFragment ( ) ) ;
149
+ return this ;
150
+ }
151
+
152
+ public virtual SqlExpression < T > And ( string sqlFilter , params object [ ] filterParams )
153
+ {
154
+ AppendToWhere ( "AND" , sqlFilter . SqlFmt ( filterParams ) . SqlVerifyFragment ( ) ) ;
155
+ return this ;
156
+ }
157
+
158
+ public virtual SqlExpression < T > Or ( string sqlFilter , params object [ ] filterParams )
159
+ {
160
+ AppendToWhere ( "OR" , sqlFilter . SqlFmt ( filterParams ) . SqlVerifyFragment ( ) ) ;
161
+ return this ;
162
+ }
163
+
164
+ public virtual SqlExpression < T > AddCondition ( string condition , string sqlFilter , params object [ ] filterParams )
165
+ {
166
+ AppendToWhere ( condition , sqlFilter . SqlFmt ( filterParams ) . SqlVerifyFragment ( ) ) ;
155
167
return this ;
156
168
}
157
169
@@ -173,18 +185,24 @@ public virtual SqlExpression<T> Or(Expression<Func<T, bool>> predicate)
173
185
return this ;
174
186
}
175
187
176
- protected void AppendToWhere ( string operand , Expression predicate )
188
+ protected void AppendToWhere ( string condition , Expression predicate )
177
189
{
178
190
if ( predicate == null )
179
191
return ;
180
192
181
193
useFieldName = true ;
182
194
sep = " " ;
183
195
var newExpr = Visit ( predicate ) . ToString ( ) ;
196
+ AppendToWhere ( condition , newExpr ) ;
197
+ }
198
+
199
+ protected void AppendToWhere ( string condition , string sqlExpression )
200
+ {
184
201
whereExpression = string . IsNullOrEmpty ( whereExpression )
185
- ? ( WhereStatementWithoutWhereString ? "" : "WHERE " )
186
- : whereExpression + " " + operand + " " ;
187
- whereExpression += newExpr ;
202
+ ? ( WhereStatementWithoutWhereString ? "" : "WHERE " )
203
+ : whereExpression + " " + condition + " " ;
204
+
205
+ whereExpression += sqlExpression ;
188
206
}
189
207
190
208
public virtual SqlExpression < T > GroupBy ( )
0 commit comments