Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class YdbDesignTimeServices : IDesignTimeServices
{
public void ConfigureDesignTimeServices(IServiceCollection serviceCollection)
{
serviceCollection.AddEntityFrameworkYdb();
serviceCollection.AddEntityFrameworkYdb(useYdbExecutionStrategy: false);

new EntityFrameworkRelationalDesignServicesBuilder(serviceCollection)
.TryAdd<IDatabaseModelFactory, YdbDatabaseModelFactory>()
Expand Down
18 changes: 13 additions & 5 deletions src/EFCore.Ydb/src/Extensions/YdbServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<LoggingDefinitions, YdbLoggingDefinitions>()
.TryAdd<IDatabaseProvider, DatabaseProvider<YdbOptionsExtension>>()
.TryAdd<IRelationalTypeMappingSource, YdbTypeMappingSource>()
Expand All @@ -42,7 +45,6 @@ public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection s
.TryAdd<IHistoryRepository, YdbHistoryRepository>()
.TryAdd<IQueryableMethodTranslatingExpressionVisitorFactory,
YdbQueryableMethodTranslatingExpressionVisitorFactory>()
.TryAdd<IExecutionStrategyFactory, YdbExecutionStrategyFactory>()
.TryAdd<IMethodCallTranslatorProvider, YdbMethodCallTranslatorProvider>()
.TryAdd<IAggregateMethodCallTranslatorProvider, YdbAggregateMethodCallTranslatorProvider>()
.TryAdd<IMemberTranslatorProvider, YdbMemberTranslatorProvider>()
Expand All @@ -57,8 +59,14 @@ public static IServiceCollection AddEntityFrameworkYdb(this IServiceCollection s
.TryAdd<IQueryCompilationContextFactory, YdbQueryCompilationContextFactory>()
.TryAddProviderSpecificServices(b => b
.TryAddScoped<IYdbRelationalConnection, YdbRelationalConnection>()
.TryAddScoped<IDbCommandInterceptor, YdbCommandInterceptor>())
.TryAddCoreServices();
.TryAddScoped<IDbCommandInterceptor, YdbCommandInterceptor>());

if (useYdbExecutionStrategy)
{
entityFrameworkServicesBuilder.TryAdd<IExecutionStrategyFactory, YdbExecutionStrategyFactory>();
}

entityFrameworkServicesBuilder.TryAddCoreServices();

return serviceCollection;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<IExecutionStrategyFactory, NonRetryingExecutionStrategyFactory>();
return base.AddServices(serviceCollection);
}
protected override ITestStoreFactory TestStoreFactory =>
new YdbTestStoreFactory(useYdbExecutionStrategy: false);
}

protected override void GiveMeSomeTime(DbContext db)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand All @@ -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);
}
Loading