Skip to content

Commit 8fc8c55

Browse files
committed
Cache trigger instance factories
1 parent c39adf5 commit 8fc8c55

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/EntityFrameworkCore.Triggered/Internal/TriggerInstanceFactory.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Concurrent;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Text;
@@ -21,6 +22,8 @@ public interface ITriggerInstanceFactory<out TTriggerType> : ITriggerInstanceFac
2122

2223
public sealed class TriggerInstanceFactory<TTriggerType> : ITriggerInstanceFactory<TTriggerType>
2324
{
25+
static ObjectFactory? _internalFactory;
26+
2427
object? _instance;
2528

2629
public TriggerInstanceFactory(object? instance)
@@ -35,9 +38,12 @@ public object Create(IServiceProvider serviceProvider)
3538
return _instance;
3639
}
3740

38-
// todo: create object factory and cache
39-
_instance = ActivatorUtilities.CreateInstance(serviceProvider, typeof(TTriggerType));
41+
if (_internalFactory is null)
42+
{
43+
_internalFactory = ActivatorUtilities.CreateFactory(typeof(TTriggerType), Array.Empty<Type>());
44+
}
4045

46+
_instance = _internalFactory(serviceProvider, null);
4147
return _instance;
4248
}
4349
}

0 commit comments

Comments
 (0)