Уровень обслуживания вызовов из контекста

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

То, чего я пытаюсь добиться, - это вызвать мой сервисный уровень, выполнить некоторые функции после того, как я вставлю / обновлю / удаляю записи базы данных.

Мои первые мысли заключались в том, чтобы добавить мое служение в мой контекст, но я не был уверен, возможно ли это или целесообразно в этом отношении.

Это мой контекст, где я внедряю сервис "serviceBus":

    public interface IPCContext
    { }
    public class PCContext : IdentityDbContext<User>, IPCContext
    {
        private readonly IClientBusServices _serviceBus;

        public PCContext(IClientBusServices serviceBus)
            : base("PayComplimentContext")
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<PCContext, Configuration>());
            _serviceBus = serviceBus;
        }

        public override int SaveChanges()
        {
            var count = base.SaveChanges();
            _serviceBus.SyncDw.Value.SyncDw(1, "Feedback", 1);
            return count;
        }
    }        

И для регистрации "serviceBus" я использую Autofac так:

class ClientBusModule : Module
{
    protected override void Load(ContainerBuilder builder)
    {
        builder.RegisterAssemblyTypes(ThisAssembly)
            .Where(t => t.Name.EndsWith("Service"))
            .AsImplementedInterfaces();
        builder.RegisterAggregateService<IClientBusServices>();
        builder.RegisterType<ClientSearchIndexService>().As<IClientSearchIndexService>().InstancePerLifetimeScope();
        builder.RegisterType<ClientSyncDataWarehouseService>().As<IClientSyncDataWarehouseService>().InstancePerLifetimeScope();
    }
}

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

The target context 'PayCompliment.Data.DbContexts.PCContext' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory.

Я подхожу к этому неправильно? Любые мысли или комментарии очень ценятся.

Сначала сайт MVC, использующий код EF6.

0 ответов

Другие вопросы по тегам