我有一个新的.NET Core Web API项目,该项目具有以下项目结构:
API->业务/域->基础架构
仅使用API方法的API非常薄。业务/域层具有我所有的业务逻辑。最后,我的基础架构层具有使用EF Core 2.0的数据库类。
我知道使用.NET Core内置的依赖项注入,我可以将API项目中的引用添加到Infrastructure项目中,然后在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 Core Web API项目中使用AuftoFac在单独的项目中注册DBContext?
吃鸡游戏
相关分类