如何在 class 库 .NET CORE 中添加 service.AddDbContext
How to add service.AddDbContext in class library .NET CORE
我在一个解决方案中有一个单独的 class 库。该库将作为 NuGet 包发布。
所以,我想将库添加到我的项目中,我必须连接项目的启动来定义它:
services.AddDbContext<DataContext>(options =>
options.UseSqlServer(Configuration["ConnectionStrings:LocalConnectionString"]));
但是我的 class 库项目中没有启动项。我如何在我的实际项目的库项目中定义它?
让您的库公开一个扩展点,以便能够与其他想要配置您的库的库集成。
public static class MyExtensionPoint {
public static IServiceCollection AddMyLibraryDbContext(this IServiceCollection services, IConfiguration Configuration) {
services.AddDbContext<DataContext>(options => options.UseSqlServer(Configuration["ConnectionStrings:LocalConnectionString"]));
return services;
}
}
在主要 Startup
中,您现在可以通过扩展添加您的图书馆服务。
public class Startup {
public void ConfigureServices(IServiceCollection services) {
//...
services.AddMyLibraryDbContext(Configuration);
services.AddMvc();
}
}
我在一个解决方案中有一个单独的 class 库。该库将作为 NuGet 包发布。
所以,我想将库添加到我的项目中,我必须连接项目的启动来定义它:
services.AddDbContext<DataContext>(options =>
options.UseSqlServer(Configuration["ConnectionStrings:LocalConnectionString"]));
但是我的 class 库项目中没有启动项。我如何在我的实际项目的库项目中定义它?
让您的库公开一个扩展点,以便能够与其他想要配置您的库的库集成。
public static class MyExtensionPoint {
public static IServiceCollection AddMyLibraryDbContext(this IServiceCollection services, IConfiguration Configuration) {
services.AddDbContext<DataContext>(options => options.UseSqlServer(Configuration["ConnectionStrings:LocalConnectionString"]));
return services;
}
}
在主要 Startup
中,您现在可以通过扩展添加您的图书馆服务。
public class Startup {
public void ConfigureServices(IServiceCollection services) {
//...
services.AddMyLibraryDbContext(Configuration);
services.AddMvc();
}
}