引用的 class 库中的连接字符串不可见

Connection string not visible from referenced class library

我正在尝试将 Web 应用程序从 ASP.NET 4.5 移植到 ASP.NET 5 / MVC 6 (Beta 8)。

该应用程序由一个 WebApp 和一个封装了数据库访问的 class 库组成。在我的新解决方案中,class 库的类型为 Class Library (Package).

数据库访问层(class 库)尝试查找名为 MyConnection 的连接字符串。在我的旧 ASP.NET 4.5 应用程序中,我曾经在 WebApp 的 web.config 中定义该连接字符串。此配置以某种方式找到了我的 class 库的方式,因此我的 class 库能够访问 WebApp 中定义的连接字符串。

现在使用 ASP.NET 5 我类似地尝试在 appsettings.json 中定义连接字符串,如下所示:

{
  "ConnectionStrings": {
    "MyConnection": "server=localhost\SQLEXPRESS;database=MyDb;Integrated Security=True"
  }
}

但在运行时出现以下错误:

Can't find a connection string with the name 'MyConnection'

因此,与旧的 ASP.NET 不同,这里的配置似乎没有进入引用的 class 库。

如何确保我的连接字符串在我引用的 class 库中可见?

你需要为你的连接字符串设置创建一个 class 并且在启动时你从 appsettings.json 绑定 class 并且你需要将它注入你的 class 类似于 关于用户机密的库,这是另一个可以放置连接字符串的地方。不再有对配置设置的静态访问。