适用于Mac和PC的.NET Core 2.0连接字符串

时间:2018-03-23 16:37:14

标签: c# asp.net-core-2.0

我刚刚开始研究.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;"
},

1 个答案:

答案 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之后默认加载它并覆盖和读入之前的值。我会将此文件保留在源代码管理之外,并将其用于各个开发人员设置。