【发布时间】:2020-01-07 19:32:23
【问题描述】:
我的项目结构很标准:
在EFData内。
EFData 是一个 Entity Framework Core 类库,用于隔离所有数据库交互。数据库模型,还有我的DBContext。我是这样构建的,因此它与数据库环境无关。
API项目当然有参考EFData。
如何将连接字符串从API 中的Startup.cs 传递到EFData 中的DBContext.cs?
我已经阅读了多篇文章,这些文章引用了与我的设置不同的设置,我可能期望在我的EFData 项目中使用Startup.cs。我没有那个。
在Startup.cs 内,我确实有我认为是必需的行 -
services.AddDbContext<DBContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
但是EFData 对那个连接字符串一无所知。
【问题讨论】:
-
EFData 不需要启动文件。如果您将 AddDbContext 调用放入 API 内的启动文件中,该 GetConnectionString 调用会返回什么值?您的 appsettings 文件是否有一个具有该名称的连接字符串?
-
返回的连接字符串是我根据我的环境所期望的。是的,与该环境对应的 appsettings 与该名称有关联。 @ShaneBauer
-
如果没有看到您打算如何使用 DBContext 类,这将很难回答。您的代码如何在 API 项目中使用该上下文?
-
我所有的数据库交互都在我希望与 API 代码分开的类库中
标签: c# entity-framework-core asp.net-core-2.1