加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – AutoFac / .NET Core – 注册DBcontext

发布时间:2020-12-15 18:09:32 所属栏目:百科 来源:网络整理
导读:我有一个新的.NET Core Web API项目,它具有以下项目结构: API – 业务/域名 – 基础设施 只有API方法,API非常薄.业务/域层具有我的所有业务逻辑.最后,我的Infrastructure层使用EF Core 2.0创建了我的DB类. 我知道使用.NET Core内置依赖注入我可以将API项目
我有一个新的.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?

解决方法

我认为问题在于您尝试使用AsImplementedInterfaces()注册MyContext().这不是DbContext通常如何注册的方式.您应该注册并解决类本身.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读