Skip to content

Commit 30af596

Browse files
feat: not using YdbExecutionStrategy for design-time services (#428)
1 parent 37bbedd commit 30af596

File tree

4 files changed

+19
-17
lines changed

4 files changed

+19
-17
lines changed

src/EFCore.Ydb/src/Design/Internal/YdbDesignTimeServices.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class YdbDesignTimeServices : IDesignTimeServices
1010
{
1111
public void ConfigureDesignTimeServices(IServiceCollection serviceCollection)
1212
{
13-
serviceCollection.AddEntityFrameworkYdb();
13+
serviceCollection.AddEntityFrameworkYdb(useYdbExecutionStrategy: false);
1414

1515
new EntityFrameworkRelationalDesignServicesBuilder(serviceCollection)
1616
.TryAdd<IDatabaseModelFactory, YdbDatabaseModelFactory>()

src/EFCore.Ydb/src/Extensions/YdbServiceCollectionExtensions.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@ namespace EntityFrameworkCore.Ydb.Extensions;
2222

2323
public static class YdbServiceCollectionExtensions
2424
{
25-
public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection serviceCollection)
25+
public static IServiceCollection AddEntityFrameworkYdb(
26+
this IServiceCollection serviceCollection,
27+
bool useYdbExecutionStrategy = true
28+
)
2629
{
27-
new EntityFrameworkYdbServicesBuilder(serviceCollection)
30+
var entityFrameworkServicesBuilder = new EntityFrameworkYdbServicesBuilder(serviceCollection)
2831
.TryAdd<LoggingDefinitions, YdbLoggingDefinitions>()
2932
.TryAdd<IDatabaseProvider, DatabaseProvider<YdbOptionsExtension>>()
3033
.TryAdd<IRelationalTypeMappingSource, YdbTypeMappingSource>()
@@ -42,7 +45,6 @@ public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection s
4245
.TryAdd<IHistoryRepository, YdbHistoryRepository>()
4346
.TryAdd<IQueryableMethodTranslatingExpressionVisitorFactory,
4447
YdbQueryableMethodTranslatingExpressionVisitorFactory>()
45-
.TryAdd<IExecutionStrategyFactory, YdbExecutionStrategyFactory>()
4648
.TryAdd<IMethodCallTranslatorProvider, YdbMethodCallTranslatorProvider>()
4749
.TryAdd<IAggregateMethodCallTranslatorProvider, YdbAggregateMethodCallTranslatorProvider>()
4850
.TryAdd<IMemberTranslatorProvider, YdbMemberTranslatorProvider>()
@@ -57,8 +59,14 @@ public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection s
5759
.TryAdd<IQueryCompilationContextFactory, YdbQueryCompilationContextFactory>()
5860
.TryAddProviderSpecificServices(b => b
5961
.TryAddScoped<IYdbRelationalConnection, YdbRelationalConnection>()
60-
.TryAddScoped<IDbCommandInterceptor, YdbCommandInterceptor>())
61-
.TryAddCoreServices();
62+
.TryAddScoped<IDbCommandInterceptor, YdbCommandInterceptor>());
63+
64+
if (useYdbExecutionStrategy)
65+
{
66+
entityFrameworkServicesBuilder.TryAdd<IExecutionStrategyFactory, YdbExecutionStrategyFactory>();
67+
}
68+
69+
entityFrameworkServicesBuilder.TryAddCoreServices();
6270

6371
return serviceCollection;
6472
}

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Migrations/YdbMigrationsInfrastructureTest.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
using EntityFrameworkCore.Ydb.FunctionalTests.TestUtilities;
22
using Microsoft.EntityFrameworkCore;
33
using Microsoft.EntityFrameworkCore.Migrations;
4-
using Microsoft.EntityFrameworkCore.Storage;
54
using Microsoft.EntityFrameworkCore.TestUtilities;
6-
using Microsoft.Extensions.DependencyInjection;
75
using Xunit;
86

97
namespace EntityFrameworkCore.Ydb.FunctionalTests.Migrations;
@@ -13,13 +11,8 @@ public class YdbMigrationsInfrastructureTest(YdbMigrationsInfrastructureTest.Ydb
1311
{
1412
public class YdbMigrationsInfrastructureFixture : MigrationsInfrastructureFixtureBase
1513
{
16-
protected override ITestStoreFactory TestStoreFactory => YdbTestStoreFactory.Instance;
17-
18-
protected override IServiceCollection AddServices(IServiceCollection serviceCollection)
19-
{
20-
serviceCollection.AddScoped<IExecutionStrategyFactory, NonRetryingExecutionStrategyFactory>();
21-
return base.AddServices(serviceCollection);
22-
}
14+
protected override ITestStoreFactory TestStoreFactory =>
15+
new YdbTestStoreFactory(useYdbExecutionStrategy: false);
2316
}
2417

2518
protected override void GiveMeSomeTime(DbContext db)

src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/TestUtilities/YdbTestStoreFactory.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
namespace EntityFrameworkCore.Ydb.FunctionalTests.TestUtilities;
66

7-
public class YdbTestStoreFactory(string? additionalSql = null) : RelationalTestStoreFactory
7+
public class YdbTestStoreFactory(string? additionalSql = null, bool useYdbExecutionStrategy = true)
8+
: RelationalTestStoreFactory
89
{
910
public static YdbTestStoreFactory Instance { get; } = new();
1011

@@ -17,5 +18,5 @@ public override TestStore GetOrCreate(string storeName)
1718
=> new YdbTestStore(storeName, _scriptPath, additionalSql);
1819

1920
public override IServiceCollection AddProviderServices(IServiceCollection serviceCollection)
20-
=> serviceCollection.AddEntityFrameworkYdb();
21+
=> serviceCollection.AddEntityFrameworkYdb(useYdbExecutionStrategy);
2122
}

0 commit comments

Comments
 (0)