我有一个新的.NET Core Web API项目,它具有以下项目结构:
API – >业务/域名 – >基础设施
只有API方法,API非常薄.业务/域层具有我的所有业务逻辑.最后,我的Infrastructure层使用EF Core 2.0创建了我的DB类.
我知道使用.NET Core内置依赖注入我可以将API项目的引用添加到Infrastructure项目,然后在StartUp.cs文件中添加以下代码:
services.AddDbContext<MyContext>(options => options.UsesqlServer(connectionString));
但是,我想保持更传统的关注点分离.到目前为止,我在我的Infrastructure层添加了一个模块,试图进行如下注册:
builder.Register(c => { var config = c.Resolve<IConfiguration>(); var opt = new DbContextOptionsBuilder<MyContext>(); opt.UsesqlServer(config.GetSection("ConnectionStrings:MyConnection:ConnectionString").Value); return new MyContext(opt.Options); }).AsImplementedInterfaces().InstancePerLifetimeScope();
但是,DBContext没有注册.尝试访问注入的DBContext的任何类都无法解析该参数.
有没有办法在.NET Core Web API项目中使用AuftoFac在单独的项目中注册DBContext?