c# - Entity Framework 核心连接字符串 - 环境变量

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

我有一个使用 Entity Framework 核心的 .net 核心应用程序。通过命令行运行 Entity Framework 迁移或更新时,我收到“值不能为空。参数名称:connectionString”

连接字符串作为环境变量保存:

ConnectionStrings__SomeContextConnection  ...(localdb)\\MSSQLLocalDB...

但是,当我将完全相同的连接字符串移动到 .json 配置文件中时:

"ConnectionStrings": {  
    "SomeContextConnection": "...(localdb)\\MSSQLLocalDB..." 
}

然后 Entity Framework 工具可以毫无问题地识别连接字符串。 调试代码时,在Startup.cs中:

var connectionString = _config.GetConnectionString("SomeContextConnection");

当字符串存储在两个位置的任一个时,connectionString 变量设置为正确的字符串,但在使用环境变量尝试连接到数据库时它会崩溃。

(注意:在环境变量的情况下,连接字符串被转义,所以从

(localdb)\\MSSQLLocalDB...

(localdb)\\\\MSSQLLocalDB...

但即使在删除多余的反斜杠后问题仍然存在)

更新: 当连接字符串被移动到 Windows 级别的环境变量中时,它工作正常。似乎只有在使用 Visual Studio 环境变量时才会出现问题。

最佳答案

如果您删除 (localdb) 后的双反斜杠,这样就只有一个反斜杠,它会起作用。

因此,一旦您在环境变量中更正了它,它应该看起来像这样:

Server=(localdb)\MSSQLLocalDB...

关于c# - Entity Framework 核心连接字符串 - 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41866613/

相关文章:

c# - asp5 IConfigurationRoot 获取json数组

asp.net - 如何访问存储在 session 中的动态对象

visual-studio - VS2012 中 edmx 图的布局

c# - 对 ASP.NET 自定义验证器进行排序以及验证器的 Text 和 ErrorMessage 属性之间的差异

c# - WPF:向窗口添加用户控件

java - 在c#中将字符串转换为字节数组,在java中将字节数组转换为字符串

sql-server - 计算柱性能

c# - 为什么不 DateTime.ToString ("R") 和 DateTime.TryParseExact 往返?

c# - 将字段集 "legend"设置为不可见

c# - 在 IntegrationTests 中实例化 DbContext