никто не любил мой первый вопрос по этому поводу:
Создание объектов Entity Framework с шаблоном Unity for Unit of Work / Repository
так что мне удалось перефразировать это что-то, что вы можете прочитать, не засыпая / не теряя воли к жизни.
Я создаю объект DataAccessLayer, который занимает 2 интерфейса в конструкторе: IUnitOfWork и IRealtimeRepository:
public DataAccessLayer(IUnitOfWork unitOfWork,
IRealtimeRepository realTimeRepository)
{
this.unitOfWork = unitOfWork;
this.realTimeRepository = realTimeRepository;
}
Теперь конструктор для реализации IRealtimeRepository также принимает параметр IUnitOfWork:
public DemoRepository(IUnitOfWork unitOfWork)
{
this.unitOfWork = unitOfWork;
}
В настройке контейнера Unity я добавляю две реализации:
container.RegisterType<IUnitOfWork, communergyEntities>();
container.RegisterType<IRealtimeRepository, DemoRepository>();
происходит то, что Unity создает 2 новых экземпляра IUnitOfWork (фактически контекст данных Entity Framework), один для конструктора DataAccessLayer, один для конструктора DemoRepository
Поскольку это для шаблона «Единица работы», очень важно, чтобы тот же экземпляр использовался повторно. Есть идеи? Я вижу, что подобные вопросы были заданы ранее, но не приняты