mirror of
https://github.com/zoriya/EntityFrameworkCore.Projectables.git
synced 2026-06-01 14:05:09 +00:00
Merge pull request #86 from zoriya/master
Add query root rewrite support
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(TestEFCoreVersion)" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.12" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
|
||||
<PackageReference Include="ScenarioTests.XUnit" Version="1.0.0" />
|
||||
<PackageReference Include="Verify.Xunit" Version="11.5.0" />
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
SELECT [e].[Id], [e].[Id] * 5
|
||||
FROM [Entity] AS [e]
|
||||
@@ -0,0 +1,39 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Threading.Tasks;
|
||||
using EntityFrameworkCore.Projectables.FunctionalTests.Helpers;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using VerifyXunit;
|
||||
using Xunit;
|
||||
|
||||
namespace EntityFrameworkCore.Projectables.FunctionalTests
|
||||
{
|
||||
[UsesVerify]
|
||||
public class QueryRootTests
|
||||
{
|
||||
public record Entity
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
[Projectable(UseMemberBody = nameof(Computed2))]
|
||||
public int Computed1 => Id;
|
||||
|
||||
private int Computed2 => Id * 2;
|
||||
|
||||
[Projectable(UseMemberBody = nameof(_ComputedWithBaking))]
|
||||
[NotMapped]
|
||||
public int ComputedWithBacking { get; set; }
|
||||
|
||||
private int _ComputedWithBaking => Id * 5;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public Task UseMemberPropertyQueryRootExpression()
|
||||
{
|
||||
using var dbContext = new SampleDbContext<Entity>();
|
||||
|
||||
var query = dbContext.Set<Entity>();
|
||||
|
||||
return Verifier.Verify(query.ToQueryString());
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
-7
@@ -61,7 +61,7 @@ namespace EntityFrameworkCore.Projectables.Tests.Services
|
||||
);
|
||||
var subject = new ProjectableExpressionReplacer(resolver);
|
||||
|
||||
var actual = subject.Visit(input);
|
||||
var actual = subject.Replace(input);
|
||||
|
||||
Assert.Equal(expected.ToString(), actual.ToString());
|
||||
}
|
||||
@@ -77,7 +77,7 @@ namespace EntityFrameworkCore.Projectables.Tests.Services
|
||||
);
|
||||
var subject = new ProjectableExpressionReplacer(resolver);
|
||||
|
||||
var actual = subject.Visit(input);
|
||||
var actual = subject.Replace(input);
|
||||
|
||||
Assert.Equal(expected.ToString(), actual.ToString());
|
||||
}
|
||||
@@ -93,7 +93,7 @@ namespace EntityFrameworkCore.Projectables.Tests.Services
|
||||
);
|
||||
var subject = new ProjectableExpressionReplacer(resolver);
|
||||
|
||||
var actual = subject.Visit(input);
|
||||
var actual = subject.Replace(input);
|
||||
|
||||
Assert.Equal(expected.ToString(), actual.ToString());
|
||||
}
|
||||
@@ -109,7 +109,7 @@ namespace EntityFrameworkCore.Projectables.Tests.Services
|
||||
);
|
||||
var subject = new ProjectableExpressionReplacer(resolver);
|
||||
|
||||
var actual = subject.Visit(input);
|
||||
var actual = subject.Replace(input);
|
||||
|
||||
Assert.Equal(expected.ToString(), actual.ToString());
|
||||
}
|
||||
@@ -125,7 +125,7 @@ namespace EntityFrameworkCore.Projectables.Tests.Services
|
||||
);
|
||||
var subject = new ProjectableExpressionReplacer(resolver);
|
||||
|
||||
var actual = subject.Visit(input);
|
||||
var actual = subject.Replace(input);
|
||||
|
||||
Assert.Equal(expected.ToString(), actual.ToString());
|
||||
}
|
||||
@@ -141,7 +141,7 @@ namespace EntityFrameworkCore.Projectables.Tests.Services
|
||||
);
|
||||
var subject = new ProjectableExpressionReplacer(resolver);
|
||||
|
||||
var actual = subject.Visit(input);
|
||||
var actual = subject.Replace(input);
|
||||
|
||||
Assert.Equal(expected.ToString(), actual.ToString());
|
||||
}
|
||||
@@ -157,7 +157,7 @@ namespace EntityFrameworkCore.Projectables.Tests.Services
|
||||
);
|
||||
var subject = new ProjectableExpressionReplacer(resolver);
|
||||
|
||||
var actual = subject.Visit(input);
|
||||
var actual = subject.Replace(input);
|
||||
|
||||
Assert.Equal(expected.ToString(), actual.ToString());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user