我有一个新的.NET Core Web API项目,它具有以下项目结构:
应用编程接口->业务/域->基础架构
API非常简单,只有API方法。业务/域层包含了我的所有业务逻辑。最后,我的基础架构层有使用EF Core 2.0的DB类。
我知道使用API内置的依赖注入,我可以从.NET项目添加一个引用到基础设施项目,然后在StartUp.cs文件中添加以下代码:
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
然而,我希望保持一种更传统的关注点分离。到目前为止,我已经在我的基础架构层中添加了一个模块,它试图像这样进行注册:
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核心Web API项目中使用AuftoFac在单独的项目中注册DBContext?
https://stackoverflow.com/questions/50125132
复制相似问题