diff --git a/src/EFCore.Ydb/src/Design/Internal/YdbDesignTimeServices.cs b/src/EFCore.Ydb/src/Design/Internal/YdbDesignTimeServices.cs index 7d3f785e..09fd6846 100644 --- a/src/EFCore.Ydb/src/Design/Internal/YdbDesignTimeServices.cs +++ b/src/EFCore.Ydb/src/Design/Internal/YdbDesignTimeServices.cs @@ -10,7 +10,7 @@ public class YdbDesignTimeServices : IDesignTimeServices { public void ConfigureDesignTimeServices(IServiceCollection serviceCollection) { - serviceCollection.AddEntityFrameworkYdb(); + serviceCollection.AddEntityFrameworkYdb(useYdbExecutionStrategy: false); new EntityFrameworkRelationalDesignServicesBuilder(serviceCollection) .TryAdd() diff --git a/src/EFCore.Ydb/src/Extensions/YdbServiceCollectionExtensions.cs b/src/EFCore.Ydb/src/Extensions/YdbServiceCollectionExtensions.cs index f74cdc31..379e0565 100644 --- a/src/EFCore.Ydb/src/Extensions/YdbServiceCollectionExtensions.cs +++ b/src/EFCore.Ydb/src/Extensions/YdbServiceCollectionExtensions.cs @@ -22,9 +22,12 @@ namespace EntityFrameworkCore.Ydb.Extensions; public static class YdbServiceCollectionExtensions { - public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection serviceCollection) + public static IServiceCollection AddEntityFrameworkYdb( + this IServiceCollection serviceCollection, + bool useYdbExecutionStrategy = true + ) { - new EntityFrameworkYdbServicesBuilder(serviceCollection) + var entityFrameworkServicesBuilder = new EntityFrameworkYdbServicesBuilder(serviceCollection) .TryAdd() .TryAdd>() .TryAdd() @@ -42,7 +45,6 @@ public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection s .TryAdd() .TryAdd() - .TryAdd() .TryAdd() .TryAdd() .TryAdd() @@ -57,8 +59,14 @@ public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection s .TryAdd() .TryAddProviderSpecificServices(b => b .TryAddScoped() - .TryAddScoped()) - .TryAddCoreServices(); + .TryAddScoped()); + + if (useYdbExecutionStrategy) + { + entityFrameworkServicesBuilder.TryAdd(); + } + + entityFrameworkServicesBuilder.TryAddCoreServices(); return serviceCollection; } diff --git a/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Migrations/YdbMigrationsInfrastructureTest.cs b/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Migrations/YdbMigrationsInfrastructureTest.cs index 5633125d..0450ab4f 100644 --- a/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Migrations/YdbMigrationsInfrastructureTest.cs +++ b/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/Migrations/YdbMigrationsInfrastructureTest.cs @@ -1,9 +1,7 @@ using EntityFrameworkCore.Ydb.FunctionalTests.TestUtilities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.TestUtilities; -using Microsoft.Extensions.DependencyInjection; using Xunit; namespace EntityFrameworkCore.Ydb.FunctionalTests.Migrations; @@ -13,13 +11,8 @@ public class YdbMigrationsInfrastructureTest(YdbMigrationsInfrastructureTest.Ydb { public class YdbMigrationsInfrastructureFixture : MigrationsInfrastructureFixtureBase { - protected override ITestStoreFactory TestStoreFactory => YdbTestStoreFactory.Instance; - - protected override IServiceCollection AddServices(IServiceCollection serviceCollection) - { - serviceCollection.AddScoped(); - return base.AddServices(serviceCollection); - } + protected override ITestStoreFactory TestStoreFactory => + new YdbTestStoreFactory(useYdbExecutionStrategy: false); } protected override void GiveMeSomeTime(DbContext db) diff --git a/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/TestUtilities/YdbTestStoreFactory.cs b/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/TestUtilities/YdbTestStoreFactory.cs index 08d6abd1..72a0942f 100644 --- a/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/TestUtilities/YdbTestStoreFactory.cs +++ b/src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests/TestUtilities/YdbTestStoreFactory.cs @@ -4,7 +4,8 @@ namespace EntityFrameworkCore.Ydb.FunctionalTests.TestUtilities; -public class YdbTestStoreFactory(string? additionalSql = null) : RelationalTestStoreFactory +public class YdbTestStoreFactory(string? additionalSql = null, bool useYdbExecutionStrategy = true) + : RelationalTestStoreFactory { public static YdbTestStoreFactory Instance { get; } = new(); @@ -17,5 +18,5 @@ public override TestStore GetOrCreate(string storeName) => new YdbTestStore(storeName, _scriptPath, additionalSql); public override IServiceCollection AddProviderServices(IServiceCollection serviceCollection) - => serviceCollection.AddEntityFrameworkYdb(); + => serviceCollection.AddEntityFrameworkYdb(useYdbExecutionStrategy); }