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

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

Сообщение Anonymous »

Я мигрирую службу приложений WPF с .net 4.7.2 на .net 8. Мне нужно некоторое руководство о том, как правильно управлять сроком службы dbcontext с использованием .net di и corewcf.
Я недавно применил следующий атрибут ко всем нашим услугам: < /p>

Код: Выделить всё

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall,
ConcurrencyMode = ConcurrencyMode.Single)]
< /code>
и в настоящее время наша иерархия от службы до Unitofwork (DbContext
) Инъекция выглядит примерно так (хотя и более сложная с базовыми классами и частичными -все услуги, а также менеджеры и репозитории имеют частичные и базовые классы).

Код: Выделить всё

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;
}
}
Все услуги, менеджеры, репозитории и dbcontext зарегистрированы как .addscoped () с контейнером.
Что касается образца COREWCF для генерации кода для DI, у меня есть несколько вопросов: < /p>

[*] Мне нужно передать атрибут [Injected] < /code> для Каждая зависимость, пока я не достигнут единицы работы? То есть для каждого 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#»