Skip to content

Commit 6fc5023

Browse files
committed
Translate >= && <= into BETWEEN in Firebird Entity Framework Core provider
1 parent 5299e9c commit 6fc5023

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/FirebirdSql.EntityFrameworkCore.Firebird/Query/Internal/FbQuerySqlGenerator.cs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -145,20 +145,18 @@ protected override Expression VisitSqlBinary(SqlBinaryExpression sqlBinaryExpres
145145
}
146146
else if (sqlBinaryExpression.OperatorType == ExpressionType.AndAlso)
147147
{
148-
if (sqlBinaryExpression.Left is SqlBinaryExpression left && sqlBinaryExpression.Right is SqlBinaryExpression right)
148+
if (sqlBinaryExpression.Left is SqlBinaryExpression left &&
149+
sqlBinaryExpression.Right is SqlBinaryExpression right &&
150+
left.OperatorType == ExpressionType.GreaterThanOrEqual &&
151+
right.OperatorType == ExpressionType.LessThanOrEqual &&
152+
left.Left.Equals(right.Left))
149153
{
150-
if (left.OperatorType == ExpressionType.GreaterThanOrEqual && right.OperatorType == ExpressionType.LessThanOrEqual &&
151-
left.Left is ColumnExpression leftColumn && right.Left is ColumnExpression rightColumn &&
152-
leftColumn.Name == rightColumn.Name)
153-
{
154-
Visit(left.Left);
155-
Sql.Append(" BETWEEN ");
156-
Visit(left.Right);
157-
Sql.Append(" AND ");
158-
Visit(right.Right);
159-
return sqlBinaryExpression;
160-
}
161-
154+
Visit(left.Left);
155+
Sql.Append(" BETWEEN ");
156+
Visit(left.Right);
157+
Sql.Append(" AND ");
158+
Visit(right.Right);
159+
return sqlBinaryExpression;
162160
}
163161
}
164162
return base.VisitSqlBinary(sqlBinaryExpression);

0 commit comments

Comments
 (0)