Dependency injection 从上下文调用服务层
首先让我说,我可能会走错这条路,但我不能让我的头周围如何使这项工作 我试图实现的是在插入/更新/删除数据库条目后调用我的服务层,执行一些功能 我最初的想法是将我的服务注入到我的上下文中,但不确定这是否可能,或者是否明智 这是我注入服务“serviceBus”的上下文: 我是不是走错了路?如有任何想法或意见,我们将不胜感激Dependency injection 从上下文调用服务层,dependency-injection,autofac,dbcontext,autofac-module,Dependency Injection,Autofac,Dbcontext,Autofac Module,首先让我说,我可能会走错这条路,但我不能让我的头周围如何使这项工作 我试图实现的是在插入/更新/删除数据库条目后调用我的服务层,执行一些功能 我最初的想法是将我的服务注入到我的上下文中,但不确定这是否可能,或者是否明智 这是我注入服务“serviceBus”的上下文: 我是不是走错了路?如有任何想法或意见,我们将不胜感激 这是一个先使用EF6代码的MVC网站。您有哪条错误消息?@CyrilDurand我已经用执行此代码时遇到的错误更新了我的问题。谢谢。此错误消息看起来不像Autofac。也许,某
这是一个先使用EF6代码的MVC网站。您有哪条错误消息?@CyrilDurand我已经用执行此代码时遇到的错误更新了我的问题。谢谢。此错误消息看起来不像Autofac。也许,某些东西没有配置为使用Autofac进行依赖项注入。您可以添加异常的堆栈跟踪吗?
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;
}
}
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.