首页 > 解决方案 > 在应用程序配置文件中找不到名为“BACEntities”的连接字符串。” 当从 .NET 5 Api 调用 'n .NET Framwork 4.7.2 Library

问题描述

标签: c#.netasp.net-core

解决方案


据我所知,我们应该在 asp.net 5 应用程序中使用 appsetting.json 而不是 App.Config 文件。

旧的.net框架库没有直接读取appsetting.json的代码,所以你应该先编写代码来读取它,然后将它传递给.net库sql连接库。

更多细节,您可以参考以下步骤:

1.添加Microsoft.Extensions.Configuration到你的类的顶部(sql连接相关类):

using Microsoft.Extensions.Configuration;

2.添加以下代码以读取连接字符串。

var config = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json").Build();
 var connectionstring =  config["BACEntities"];

3.修改appsetting.json如下:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "BACEntities": "metadata=res://*/BACSAModel.csdl|res://*/BACSAModel.ssdl|res://*/BACSAModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=BACSA;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""


}

结果:

在此处输入图像描述


推荐阅读