猿问

AutoFac / .NET Core-注册DBcontext

我有一个新的.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?


撒科打诨
浏览 207回答 3
3回答

吃鸡游戏

我认为问题在于您正尝试MyContext()使用进行注册AsImplementedInterfaces()。通常,这不是DbContext的注册方式。您应该注册并解析类本身。
随时随地看视频慕课网APP
我要回答