我有一个一般性问题,即如何最好地将 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"));
如果您有更好的建议或替代解决方案,我将非常感激。谢谢。