我有一个使用 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/