Как использовать ef core в классе stati c с ConcurrentQueues? - PullRequest
0 голосов
/ 08 апреля 2020

будет несколько запросов к одному действию. Так что я создал класс c stati, у которого есть ConcurrentQueue для обработки данных.

, но я не могу использовать ef core в нем. c class.

и мне нужно сохранять данные и перечитывать данные по запросу.

в противном случае данные будут неверными.

1 Ответ

0 голосов
/ 08 апреля 2020

Stati c класс 100%. Вы не можете сделать это. Тем не менее, здесь, вероятно, нет необходимости в настоящем классе stati c. Вместо этого вы должны использовать обычный класс, зарегистрировать его как одноэлементный, а затем внедрить его там, где вам это нужно. Контекст является сервисом с заданной областью, поэтому вы все еще не можете напрямую внедрить его в класс, но вы можете внедрить IServiceProvider и использовать шаблон поиска службы:

using var scope = _serviceProvider.CreateScope();
using var context = scope.ServiceProvider.GetRequiredService<MyContext>();
// do something with context

Важно отметить, что вы можете только использовать контекст, в пределах которого он определен. Вы не можете делать с ним что-то вроде набора поля или свойства в классе. Вы должны будете использовать приведенный выше код в каждом методе, который должен использовать контекст в классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...