Как заставить CoreWCF охватить DBContext за вызов/сеанс?C#

Место общения программистов C#
Ответить
Anonymous
 Как заставить CoreWCF охватить DBContext за вызов/сеанс?

Сообщение Anonymous »

Я мигрирую службу приложений WPF с .netframework 4.7.2 в .net8. Мне нужно некоторое руководство о том, как правильно управлять сроком службы DBContext с использованием .NET DI и COREWCF. Недавно я применил следующий атрибут ко всем нашим услугам: < /p>
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)]
< /code>
И в настоящее время наша иерархия от обслуживания до Unitofwork (dbcontext) выглядит примерно так (хотя более сложная с базовыми классами и частичными услугами, а также менеджеры и репозитории имеют частичные и базовые классы). < /p>
public partial class MyService
{
public Manager MyManager { get; set;}
public MyService(IMyManager myManager)
{
MyManager = myManager;
}
}

public partial class MyManager
{
public Repository MyRepository { get; set; }
public MyManager(IMyRepository myRepository)
{
MyRepository = myRepository;
}
}

public partial class MyRepository
{
public DbContext MyDbContext { get; set; }
public MyRepository(IMyDbContext dbContext)
{
MyDbContext = dbContext;
}
}
< /code>
Все услуги, менеджеры, репозитории и DBContexts зарегистрированы как .AddScoped () с контейнером. Для DI у меня есть несколько вопросов: < /p>
Нужно ли передать атрибут [инъецированного] для каждой зависимости, пока я не достигнут единицы работы? То есть для каждого Mymanager, MyRepository, MyDbContext? Или мне нужно сделать это для корня (imymanager) в иерархии DI? У нас около 300 услуг с подходящими менеджерами и репозиториями. Будут ли эти частичные в услугах мешать генерации кода, которую делает CoreWCF? < /P>
Любая помощь будет оценена. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ll-session
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»