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

时间:2019-02-15 20:03:05

标签: c# asp.net-core web-config

在vs.net中,我在一个解决方案中有多个项目,webApplication是启动项目(asp.net core 2.1)和DataAccess项目(类库.net framework 4.6),我从app.config复制了连接字符串(DataAccess项目)到webApplication中的appsettings.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"
    }
  }
}

3 个答案:

答案 0 :(得分:0)

尝试使用GetValue获取Hemmat_Entities的值。并且:是嵌套值所必需的。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

@ t-prisar。 您需要通过表示层注入一个,然后传递给DAL构造函数。