Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API review changes #28728

Merged
1 commit merged into from
Aug 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1503,7 +1503,7 @@ private static Expression ConvertObjectArrayEqualityComparison(Expression left,
l = l.Type.IsNullableType() ? l : Expression.Convert(l, r.Type);
}

return ExpressionExtensions.BuildEqualsExpression(l, r);
return ExpressionExtensions.CreateEqualsExpression(l, r);
})
.Aggregate((a, b) => Expression.AndAlso(a, b));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -535,7 +535,7 @@ private static ShapedQueryExpression CreateShapedQueryExpressionStatic(IEntityTy
var left = RemapLambdaBody(outer, outerKeySelector);
var right = RemapLambdaBody(inner, innerKeySelector);

var joinCondition = TranslateExpression(EntityFrameworkCore.Infrastructure.ExpressionExtensions.BuildEqualsExpression(left, right));
var joinCondition = TranslateExpression(EntityFrameworkCore.Infrastructure.ExpressionExtensions.CreateEqualsExpression(left, right));

var (outerKeyBody, innerKeyBody) = DecomposeJoinCondition(joinCondition);

Expand Down Expand Up @@ -1251,7 +1251,7 @@ protected override Expression VisitExtension(Expression extensionExpression)
: foreignKey.Properties,
makeNullable);

var keyComparison = EntityFrameworkCore.Infrastructure.ExpressionExtensions.BuildEqualsExpression(outerKey, innerKey);
var keyComparison = EntityFrameworkCore.Infrastructure.ExpressionExtensions.CreateEqualsExpression(outerKey, innerKey);

var predicate = makeNullable
? Expression.AndAlso(
Expand Down
4 changes: 3 additions & 1 deletion src/EFCore.Relational/Diagnostics/CommandSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,7 @@ public enum CommandSource
/// <summary>
/// The command was generated as part of an 'ExecuteUpdate' operation.
/// </summary>
ExecuteUpdate,
#pragma warning disable CS0618 // Type or member is obsolete
ExecuteUpdate = BulkUpdate,
#pragma warning restore CS0618 // Type or member is obsolete
}
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ private SqlExpression CreateJoinPredicate(
}

private SqlExpression CreateJoinPredicate(Expression outerKey, Expression innerKey)
=> TranslateExpression(EntityFrameworkCore.Infrastructure.ExpressionExtensions.BuildEqualsExpression(outerKey, innerKey))!;
=> TranslateExpression(EntityFrameworkCore.Infrastructure.ExpressionExtensions.CreateEqualsExpression(outerKey, innerKey))!;

/// <inheritdoc />
protected override ShapedQueryExpression? TranslateLastOrDefault(
Expand Down Expand Up @@ -1064,7 +1064,7 @@ protected override Expression VisitMethodCall(MethodCallExpression methodCallExp
QueryableMethods.AnyWithPredicate.MakeGenericMethod(clrType),
source,
Expression.Quote(Expression.Lambda(
Infrastructure.ExpressionExtensions.BuildEqualsExpression(innerParameter, entityParameter),
Infrastructure.ExpressionExtensions.CreateEqualsExpression(innerParameter, entityParameter),
innerParameter)));
}

Expand Down Expand Up @@ -1126,7 +1126,7 @@ protected override Expression VisitMethodCall(MethodCallExpression methodCallExp
// We generate equality between property = value while translating sothat value infer tye type mapping from property correctly.
// Later we decompose it back into left/right components so that the equality is not in the tree which can get affected by
// null semantics or other visitor.
var setter = Infrastructure.ExpressionExtensions.BuildEqualsExpression(left, right);
var setter = Infrastructure.ExpressionExtensions.CreateEqualsExpression(left, right);
var translation = _sqlTranslator.Translate(setter);
if (translation is SqlBinaryExpression { OperatorType: ExpressionType.Equal, Left: ColumnExpression column } sqlBinaryExpression)
{
Expand Down Expand Up @@ -1512,7 +1512,7 @@ protected override Expression VisitExtension(Expression extensionExpression)
: foreignKey.Properties,
makeNullable);

var keyComparison = Infrastructure.ExpressionExtensions.BuildEqualsExpression(outerKey, innerKey);
var keyComparison = Infrastructure.ExpressionExtensions.CreateEqualsExpression(outerKey, innerKey);

var predicate = makeNullable
? Expression.AndAlso(
Expand Down Expand Up @@ -1604,7 +1604,7 @@ outerKey is NewArrayExpression newArrayExpression
makeNullable);

var joinPredicate = _sqlTranslator.Translate(
EntityFrameworkCore.Infrastructure.ExpressionExtensions.BuildEqualsExpression(outerKey, innerKey))!;
EntityFrameworkCore.Infrastructure.ExpressionExtensions.CreateEqualsExpression(outerKey, innerKey))!;
// Following conditions should match conditions for pushdown on outer during SelectExpression.AddJoin method
var pushdownRequired = _selectExpression.Limit != null
|| _selectExpression.Offset != null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1440,7 +1440,7 @@ private static Expression ConvertObjectArrayEqualityComparison(Expression left,

return leftExpressions.Zip(
rightExpressions,
(l, r) => Infrastructure.ExpressionExtensions.BuildEqualsExpression(l, r))
(l, r) => Infrastructure.ExpressionExtensions.CreateEqualsExpression(l, r))
.Aggregate((a, b) => Expression.AndAlso(a, b));
}

Expand Down Expand Up @@ -1571,7 +1571,7 @@ private bool TryRewriteEntityEquality(
var condition = nullComparedEntityType.GetNonPrincipalSharedNonPkProperties(table)
.Where(e => !e.IsNullable)
.Select(
p => Infrastructure.ExpressionExtensions.BuildEqualsExpression(
p => Infrastructure.ExpressionExtensions.CreateEqualsExpression(
CreatePropertyAccessExpression(nonNullEntityReference, p),
Expression.Constant(null, p.ClrType.MakeNullable()),
nodeType != ExpressionType.Equal))
Expand All @@ -1584,7 +1584,7 @@ private bool TryRewriteEntityEquality(

result = Visit(
nullComparedEntityTypePrimaryKeyProperties.Select(
p => Infrastructure.ExpressionExtensions.BuildEqualsExpression(
p => Infrastructure.ExpressionExtensions.CreateEqualsExpression(
CreatePropertyAccessExpression(nonNullEntityReference, p),
Expression.Constant(null, p.ClrType.MakeNullable()),
nodeType != ExpressionType.Equal))
Expand Down Expand Up @@ -1636,7 +1636,7 @@ private bool TryRewriteEntityEquality(

result = Visit(
primaryKeyProperties.Select(
p => Infrastructure.ExpressionExtensions.BuildEqualsExpression(
p => Infrastructure.ExpressionExtensions.CreateEqualsExpression(
CreatePropertyAccessExpression(left, p),
CreatePropertyAccessExpression(right, p),
nodeType != ExpressionType.Equal))
Expand Down
2 changes: 1 addition & 1 deletion src/EFCore/ChangeTracking/ValueComparer`.cs
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ public ValueComparer(

return Expression.Lambda<Func<T?, T?, bool>>(
typedEquals == null
? Infrastructure.ExpressionExtensions.BuildEqualsExpression(param1, param2)
? Infrastructure.ExpressionExtensions.CreateEqualsExpression(param1, param2)
: Expression.Call(typedEquals, param1, param2),
param1, param2);
}
Expand Down
2 changes: 1 addition & 1 deletion src/EFCore/Extensions/Internal/ExpressionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ static Expression GenerateEqualExpression(
=> property.ClrType.IsValueType
&& property.ClrType.UnwrapNullableType() is Type nonNullableType
&& !(nonNullableType == typeof(bool) || nonNullableType.IsNumeric() || nonNullableType.IsEnum)
? Infrastructure.ExpressionExtensions.BuildEqualsExpression(
? Infrastructure.ExpressionExtensions.CreateEqualsExpression(
Expression.Call(
EF.PropertyMethod.MakeGenericMethod(typeof(object)),
entityParameterExpression,
Expand Down
2 changes: 1 addition & 1 deletion src/EFCore/Infrastructure/ExpressionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ private static readonly MethodInfo ObjectEqualsMethodInfo
/// <param name="right">The right expression in equality comparison.</param>
/// <param name="negated">If the comparison is non-equality.</param>
/// <returns>An expression to compare left and right expressions.</returns>
public static Expression BuildEqualsExpression(
public static Expression CreateEqualsExpression(
Expression left,
Expression right,
bool negated = false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ protected Expression ExpandSkipNavigation(
QueryableMethods.Where.MakeGenericMethod(innerSourceElementType),
innerSource,
Expression.Quote(Expression.Lambda(
Infrastructure.ExpressionExtensions.BuildEqualsExpression(outerKey,innerKey), innerSourceParameter))),
Infrastructure.ExpressionExtensions.CreateEqualsExpression(outerKey,innerKey), innerSourceParameter))),
outerSourceParameter);

secondaryExpansion = Expression.Call(
Expand Down Expand Up @@ -415,7 +415,7 @@ outerKey is NewArrayExpression newArrayExpression
})
.Aggregate((l, r) => Expression.AndAlso(l, r))
: Expression.NotEqual(outerKey, Expression.Constant(null, outerKey.Type)),
Infrastructure.ExpressionExtensions.BuildEqualsExpression(outerKey, innerKey));
Infrastructure.ExpressionExtensions.CreateEqualsExpression(outerKey, innerKey));

// Caller should take care of wrapping MaterializeCollectionNavigation
return Expression.Call(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1599,7 +1599,7 @@ static MethodInfo GetThenByMethod(MethodInfo currentGenericMethod)
var innerKeyLambda = RemapLambdaExpression(innerSource, innerKeySelector);

var keyComparison = _removeRedundantNavigationComparisonExpressionVisitor
.Visit(Infrastructure.ExpressionExtensions.BuildEqualsExpression(outerKeyLambda, innerKeyLambda));
.Visit(Infrastructure.ExpressionExtensions.CreateEqualsExpression(outerKeyLambda, innerKeyLambda));

Expression left;
Expression right;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ protected override Expression VisitMethodCall(MethodCallExpression methodCallExp

var anyLambdaParameter = Expression.Parameter(typeArgument, "p");
var anyLambda = Expression.Lambda(
Infrastructure.ExpressionExtensions.BuildEqualsExpression(anyLambdaParameter, methodCallExpression.Arguments[1]),
Infrastructure.ExpressionExtensions.CreateEqualsExpression(anyLambdaParameter, methodCallExpression.Arguments[1]),
anyLambdaParameter);

return Expression.Call(null, anyMethod, new[] { Visit(methodCallExpression.Arguments[0]), anyLambda });
Expand Down