如何将AddDbContext移动到服务扩展静态类



我在。NET 6中的Program.cs中有此代码。

var idConnectionString = builder.Configuration.GetConnectionString("IdentityConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(idConnectionString));
var abcConnectionString = builder.Configuration.GetConnectionString("abcConnection");
builder.Services.RegisterSqlServer<AbcDbContext>(abcConnectionString);
var xyzConnectionString = builder.Configuration.GetConnectionString("xyzConnection");
builder.Services.AddDbContext<XzyDbContext>(x => x.UseSqlServer(xyzConnectionString));

如何将这些代码移动到我的Service扩展类中?

public static class ServiceExtensions
{     
public static IServiceCollection AddDbContextServices(this IServiceCollection services)
{
??
return services;
}
}

创建静态类DbContext,如下所示:

public static class DbContext
{
public static IServiceCollection AddCustomizedDbContext(this IServiceCollection services, IConfiguration configuration)
{
var connectionString = configuration.GetSection("ConnectionStrings:Connectionstring").Value;
var migrationsAssembly = "NameSpace";
services.AddDbContext<DBContext>(options =>
options.UseSqlServer(connectionString, sql => sql.MigrationsAssembly(migrationsAssembly))
);
return services;
}
}

然后在启动时注册:

services.AddCustomizedDbContext(configuration);

最新更新