我刚刚开始研究.NET Core 2项目。我正在使用Mac而其他开发人员使用的是Windows PC。但是,Mac上的SQL Server存在一些问题。首先,SQL Server不能在Mac上运行。这可以通过在本地docker容器中运行SQL Server来解决:https://medium.com/@reverentgeek/sql-server-running-on-a-mac-3efafda48861
第二个问题是,大多数教程和本地开发/测试中使用的LocalDB也不适用于mac,如Could not resolve host '(localdb)' on Visual Studio for MacOS所述。
我的问题是,在开发中为PC或Mac加载正确的连接字符串有什么好方法?我正在考虑添加多个字符串,但不确定什么是最佳实践。
appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=myWindowsDb;Trusted_Connection=True;MultipleActiveResultSets=true",
"MacConnection": "Server=localhost;Database=myMacDb;User Id = someuser;Password=mySecretMacPassword;Initial Catalog = myMacDb;"
},
答案 0 :(得分:2)
由于这仅适用于您自己的开发环境,因此您不应对项目中的appsettings.json
进行任何更改以解决此问题。相反,您可以创建一个单独的appsettings.Development.json
文件,其中包含:
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=myMacDb;User Id = someuser;Password=mySecretMacPassword;Initial Catalog = myMacDb;"
}
ASP.NET Core会在appsettings.json
之后默认加载它并覆盖和读入之前的值。我会将此文件保留在源代码管理之外,并将其用于各个开发人员设置。