Сохранение сохраняемости в центре SignalR Core - PullRequest
0 голосов
/ 05 июня 2019

У меня есть .Net Core 2.2 Web API для приложения чата с концентратором SignalR. Я хотел бы сохранить чаты в базе данных (MySQL). Сначала я подумал, что могу внедрить свой DbContext в концентратор через внедрение зависимостей. Но потом я прочитал, что хаб это Singleton, тогда как DbContext (когда используется через помощник AddDbContext) Scoped. Затем я прочитал другой пост, где было предложено заставить AddDbContext добавить контекст как синглтон. Но я также читал, что это действительно плохая идея. Наконец, я прочитал пост, где кто-то предложил просто получить DbContext из моего Hub с помощью DbContextFactory, и они предоставили этот пример:

using (var dbContextScope = dbContextScopeFactory.Create(options))
{
    //do database stuff
    dbContextScope.SaveChanges();
}

Однако я не знаю, как получить экземпляр DbContextScopeFactory в моем хабе. Я попытался внедрить IDbContextScopeFactory в конструктор моего хаба, но он просто говорит, что тип или пространство имен IDbContextScopeFactory не может быть найдено

Может ли кто-нибудь указать мне правильное направление?

Спасибо

...