.net - EF Core 使用类库项目和 DB 脚手架从用户 secret 中读取连接字符串

标签 .net asp.net-core .net-core entity-framework-core

我有两个项目,一个是 Web,另一个是类库。 我需要将 Entity Framework 放入类库项目中。 但是,在构建数据库时我无法读取连接字符串。

  1. 初始化 key :dotnet user-secrets init
  2. 设置要存储的项目:dotnet user-secrets set "ConnectionStrings:MyConnString""string"
  3. 脚手架数据库:dotnet ef dbcontext脚手架名称=ConnectionStrings:MyConnString

这显然行不通,因为静态配置方法是在Web项目中,而不是在类库项目中。

错误: 使用了命名连接字符串,但在应用程序的配置中找不到名称“ConnectionStrings:APIConnection”。

我可以完成这项工作的唯一方法是对连接字符串进行硬编码。

还有其他方法可以实现这个功能吗?

最佳答案

它适用于 ASP.NET Core 6 和 EfCore v6.0.1

这是我完成的步骤:

  1. 创建 ASP.NET Core Web API 和类库项目
-- > WebApp.Api\
   |
   > WebApp.Data\ 
   |
   > WebApp.sln
  • WebApp.Api 设置连接字符串 secret 。确保将 UserSecretsId 添加到 csproj PropertyGroup:
  • > dotnet user-secrets init
    > dotnet user-secrets set "ConnectionStrings:MyConnString" "<conn-string>"
    
  • Microsoft.EntityFrameworkCoreMicrosoft.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/

    相关文章:

    asp.net-core - Nuget 恢复在 CORE 包的 VSO 2017 构建上失败

    c# - EF Core 中的 .WillCascadeOnDelete(false) 等价物是什么?

    c# - 如何从 C# 运行 Python 脚本?

    c# - LINQ - 嵌套计数问题

    c# - DateTime.Compare 如何检查日期是否小于 30 天?

    javascript - 如何根据行数设置 Google Chart 高度?

    c# - .NET 缓存滑动过期如何工作?

    c# - 如果 modelstate 无效,则 Action Filter 不会运行

    asp.net-core - 使用命令行调用 IISExpress 来托管 ASP.NET Core 应用程序

    c# - 没有注册类型 'MyType' 的服务