Ваш класс UnitOfWork
зависит от CoreContext
, но вы не зарегистрировали CoreContext
как службу, а только как реализацию.Simple Injector будет искать только регистрацию услуг, но регистрация для CoreContext
отсутствует.Как запасной вариант, Simple Injector попытается разрешить CoreContext
напрямую, что работает, потому что это конкретный тип.Однако эти незарегистрированные конкретные типы по умолчанию разрешаются с использованием образа жизни Transient.
Разрешение реализации DbContext в качестве Transient, однако, обычно не то, что вам нужно.Scoped обычно лучше, и поэтому Simple Injector правильно предупреждает об этом.
Вам следует изменить свою регистрацию на следующее:
container.Register<CoreContext>(Lifestyle.Scoped);
container.Register<IUnitOfWork, UnitOfWork>(Lifestyle.Scoped);