Ich habe eine Multithread -Anwendung entwickelt, die DBContext von EF Core verwendet. > system.invalidoperationException: 'Eine zweite Operation wurde zu diesem Kontextinstanz gestartet, bevor ein früherer Vorgang abgeschlossen wurde. Dies wird normalerweise durch verschiedene Threads gleichzeitig mit derselben Instanz von dbContext verursacht. Weitere Informationen zum Vermeiden von Threading -Problemen mit DBContext finden Sie unter
https://go.microsoft.com/fwlink/?linkid=2097913. Ich instanziiere dbContext und injiziere sie an Dienstekonstruktoren mithilfe der Abhängigkeitsinjektion. >
Code: Select all
var serviceCollection = new ServiceCollection();
var serviceProvider = serviceCollection
.AddSingleton()
.AddSingleton()
.AddSingleton()
.AddSingleton()
.AddDbContext(options =>
{
options.UseSqlServer(settings.DbConnection, o => o.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery));
})
.BuildServiceProvider();
< /code>
Ich dachte, es sei fällig, weil alle Dienste Singleton sind. Ich habe jedoch auch mit AddScoped und AddTransient versucht, aber das Gleiche tritt auf. < /p>
Wie kann ich dieses [url=viewtopic.php?t=11587]Problem[/url] loswerden? Vielleicht, indem ich die Verbindung jedes Mal öffne, wenn ich sie benutze, aber ich weiß nicht, wie es geht. {}
Aber ich weiß nicht, ob dies eine gute Lösung. Der Link Die Fehlermeldung zeigt keine Lösung. Es erklärt nur das Problem.
Ein Hinweis?