我有两个项目,一个是 Web,另一个是类库。 我需要将 Entity Framework 放入类库项目中。 但是,在构建数据库时我无法读取连接字符串。
- 初始化 key :
dotnet user-secrets init
- 设置要存储的项目:
dotnet user-secrets set "ConnectionStrings:MyConnString""string"
- 脚手架数据库:
dotnet ef dbcontext脚手架名称=ConnectionStrings:MyConnString
这显然行不通,因为静态配置方法是在Web项目中,而不是在类库项目中。
错误:
使用了命名连接字符串,但在应用程序的配置中找不到名称“ConnectionStrings:APIConnection”。
我可以完成这项工作的唯一方法是对连接字符串进行硬编码。
还有其他方法可以实现这个功能吗?
最佳答案
它适用于 ASP.NET Core 6 和 EfCore v6.0.1
。
这是我完成的步骤:
- 创建 ASP.NET Core Web API 和类库项目
-- > WebApp.Api\
|
> WebApp.Data\
|
> WebApp.sln
- 为
WebApp.Api
设置连接字符串 secret 。确保将UserSecretsId
添加到 csprojPropertyGroup
:
> dotnet user-secrets init
> dotnet user-secrets set "ConnectionStrings:MyConnString" "<conn-string>"
- 将
Microsoft.EntityFrameworkCore
和Microsoft.EntityFrameworkCore.SqlServer
安装到WebApp.Data
中。将项目引用从WebApp.Api
添加到WebApp.Data
。 - 为
WebApp.Api
项目安装Microsoft.EntityFrameworkCore.Design
nuget。 - 在 cmd 中导航至
WebApp.Api
项目文件夹并运行以下命令:
> dotnet ef dbcontext scaffold Name=ConnectionStrings:MyConnString "Microsoft.EntityFrameworkCore.SqlServer" -p ..\WepApp.Data\
在这种情况下,scaffold
命令启动项目是WebApp.Api
,目标项目是WebApp.Data
关于.net - EF Core 使用类库项目和 DB 脚手架从用户 secret 中读取连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70637584/