如何在DAL层项目上使用来自appsettings.json的连接字符串

问题描述 投票:0回答:3

在vs.net中,我在一个解决方案中有多个项目,webApplication是启动项目(asp.net core 2.1)和DataAccess项目(类库.net框架4.6),我将连接字符串从app.config(DataAccess项目)复制到appsettings。 webApplication中的json但在访问数据库错误时出现:在应用程序配置文件中找不到名为“Hemmat_Entities”的连接字符串。

DAL项目中的app.config:

 <connectionStrings>
      <add name="Hemmat_Entities" connectionString="metadata..."
 </connectionStrings> 

asp.net核心中的appsettings是:

{
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "Hemmat_Entities": "data source=.;initial 
           catalog=hemmat_new;integrated 
             security=True;multipleactiveresultsets=True;application 
             name=EntityFramework&quot;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  }
}
c# asp.net-core web-config
3个回答
0
投票

尝试使用GetValue获取Hemmat_Entities的值。嵌套值需要:

string connectionString = Configuration.GetValue<string("ConnectionStrings:Hemmat_Entities");


0
投票

我找到了解决方案,我的错误是Asp.net核心2项目针对.net核心,将其更改为.net框架后,问题解决了!

因此,如果我们想引用在.net461下运行的其他项目,那么在我的情况下,asp.net core 2中的主项目必须处于.net框架目标模式。


0
投票

@ T-prisar。您需要通过Presentation Layer注入一个,传递给DAL Constructor。

© www.soinside.com 2019 - 2024. All rights reserved.