-
Notifications
You must be signed in to change notification settings - Fork 255
Expand file tree
/
Copy pathAdHocQuerySplittingQueryNpgsqlTest.cs
More file actions
48 lines (38 loc) · 1.68 KB
/
AdHocQuerySplittingQueryNpgsqlTest.cs
File metadata and controls
48 lines (38 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure;
using Npgsql.EntityFrameworkCore.PostgreSQL.Infrastructure.Internal;
namespace Microsoft.EntityFrameworkCore.Query;
#nullable disable
public class AdHocQuerySplittingQueryNpgsqlTest(NonSharedFixture fixture) : AdHocQuerySplittingQueryTestBase(fixture)
{
protected override ITestStoreFactory NonSharedTestStoreFactory
=> NpgsqlTestStoreFactory.Instance;
private static readonly FieldInfo _querySplittingBehaviorFieldInfo =
typeof(RelationalOptionsExtension).GetField("_querySplittingBehavior", BindingFlags.NonPublic | BindingFlags.Instance);
protected override DbContextOptionsBuilder SetQuerySplittingBehavior(
DbContextOptionsBuilder optionsBuilder,
QuerySplittingBehavior splittingBehavior)
{
new NpgsqlDbContextOptionsBuilder(optionsBuilder).UseQuerySplittingBehavior(splittingBehavior);
return optionsBuilder;
}
protected override DbContextOptionsBuilder ClearQuerySplittingBehavior(DbContextOptionsBuilder optionsBuilder)
{
var extension = optionsBuilder.Options.FindExtension<NpgsqlOptionsExtension>();
if (extension == null)
{
extension = new NpgsqlOptionsExtension();
}
else
{
_querySplittingBehaviorFieldInfo.SetValue(extension, null);
}
((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(extension);
return optionsBuilder;
}
protected override TestStore CreateTestStore25225()
{
var testStore = NpgsqlTestStore.Create(NonSharedStoreName);
testStore.UseConnectionString = true;
return testStore;
}
}