将 DBcontext 注册移至数据层(.Net Core Web App)

问题描述 投票:0回答:0

我有一个一般性问题,即如何最好地将 DBcontext 从 Web 应用程序移动到数据层。主要原因是,我觉得Web层没有必要包含对Entity Framework和其他仅用于数据库连接的包的引用。

我的意思是不是在 Program.cs 中这样做

builder.Services.AddDbContext<AppDbContext>(options => 
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

而是在数据层有一个助手

  public static class RegisterServices
    {
        public static void AddDbLayer(this IServiceCollection services,  string connectionString)
        {
            services.AddDbContext<AppDbContext>(option =>
                 option.UseSqlServer(connectionString));
        }
    }

然后在 Program.cs 中执行此操作。

builder.Services.AddDbLayer(builder.Configuration.GetValue<string>("ConnectionStrings:DefaultConnection"));

如果您有更好的建议或替代解决方案,我将非常感激。谢谢。

asp.net-core dbcontext
© www.soinside.com 2019 - 2024. All rights reserved.