Skip to content

Commit ba2d5a0

Browse files
committed
Made TriggerInstanceFactory a resettable service
1 parent 267ad23 commit ba2d5a0

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/EntityFrameworkCore.Triggered/Infrastructure/Internal/TriggersOptionExtension.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ public void ApplyServices(IServiceCollection services)
239239

240240
var triggerTypeImplementationFactoryType = typeof(ITriggerInstanceFactory<>).MakeGenericType(triggerTypeImplementation);
241241
services.Add(new ServiceDescriptor(triggerTypeImplementationFactoryType, _ => triggerInstanceFactoryBuilder(triggerServiceInstance), lifetime));
242+
services.AddScoped(typeof(IResettableService), serviceProvider => serviceProvider.GetRequiredService(triggerTypeImplementationFactoryType));
242243
}
243244
}
244245
}

src/EntityFrameworkCore.Triggered/Internal/TriggerInstanceFactory.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
using System;
2+
using System.Threading;
3+
using System.Threading.Tasks;
4+
using Microsoft.EntityFrameworkCore.Infrastructure;
25
using Microsoft.Extensions.DependencyInjection;
36

47
namespace EntityFrameworkCore.Triggered.Internal
@@ -9,7 +12,7 @@ public interface ITriggerInstanceFactory
912
object Create(IServiceProvider serviceProvider);
1013
}
1114

12-
public interface ITriggerInstanceFactory<out TTriggerType> : ITriggerInstanceFactory
15+
public interface ITriggerInstanceFactory<out TTriggerType> : ITriggerInstanceFactory, IResettableService
1316
{
1417

1518
}
@@ -40,5 +43,16 @@ public object Create(IServiceProvider serviceProvider)
4043
_instance = _internalFactory(serviceProvider, null);
4144
return _instance;
4245
}
46+
47+
public void ResetState()
48+
{
49+
_instance = null;
50+
}
51+
52+
public Task ResetStateAsync(CancellationToken cancellationToken = default)
53+
{
54+
ResetState();
55+
return Task.CompletedTask;
56+
}
4357
}
4458
}

0 commit comments

Comments
 (0)