【发布时间】:2021-08-31 11:22:05
【问题描述】:
到目前为止,我使用 EFCore (3.1) 开发了多个 ASP.NET Core Web 应用程序,其中我在同一个项目中拥有所有层(模型、数据访问、业务逻辑...)。为了向 DbContext 提供数据库连接字符串,我使用了 DependencyInjection 并在 ConfigureServices 方法中调用了 AddDbContext,如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DbContextName>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// ...
}
然后,我通过每个控制器类中的构造函数获取上下文的实例,并使用它与数据库进行交互。连接字符串始终存储在 Web 应用程序的 appsettings.json 文件中。
现在我正在开发一个基于 EF 5 的更复杂的应用程序,该应用程序包含每个层的单独项目,包括一个用于 DataAccess 层的项目。为了避免为解决方案中的每个项目带来无数的单独配置文件,我仍然想将数据库连接字符串存储在 appsettings.json 文件中。
如何将 appsettings.json 文件中的连接字符串提供给 DataAccess 项目中的 DbContext?由于我无法访问 DataAccess 项目中 OnConfiguring 方法中的配置,因此我无法以这种方式提供它。是否仍然可以像以前一样通过AddDbContext 执行此操作,或者通常如何执行此操作?到目前为止,我能找到的所有示例都适用于硬编码的连接字符串,因此从未在其中任何一个中解释过。
【问题讨论】:
标签: c# asp.net-core entity-framework-5