Skip to content

Commit

Permalink
Avoid using "value" as an alias
Browse files Browse the repository at this point in the history
Fixes #20557
  • Loading branch information
AndriySvyryd committed Apr 14, 2020
1 parent fc5757c commit ac768a3
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/EFCore.Cosmos/Query/Internal/SelectExpression.cs
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,8 @@ private int AddToProjection(Expression expression, string alias)

var currentAlias = baseAlias;
var counter = 0;
while (_projection.Any(pe => string.Equals(pe.Alias, currentAlias, StringComparison.OrdinalIgnoreCase)))
while (string.Equals("value", currentAlias, StringComparison.OrdinalIgnoreCase)
|| _projection.Any(pe => string.Equals(pe.Alias, currentAlias, StringComparison.OrdinalIgnoreCase)))
{
currentAlias = $"{baseAlias}{counter++}";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,21 @@ namespace Microsoft.EntityFrameworkCore.Query
{
public partial class SimpleQueryCosmosTest
{
[ConditionalTheory]
[MemberData(nameof(IsAsyncData))]
public virtual async Task Projection_with_Value_Property(bool async)
{
await AssertQuery(
async,
ss => ss.Set<Order>().Select(o => new { Value = o.OrderID }),
e => (e.Value));

AssertSql(
@"SELECT c[""OrderID""] AS Value0
FROM root c
WHERE (c[""Discriminator""] = ""Order"")");
}

public override async Task Projection_when_arithmetic_expression_precedence(bool isAsync)
{
await base.Projection_when_arithmetic_expression_precedence(isAsync);
Expand Down

0 comments on commit ac768a3

Please sign in to comment.