【发布时间】:2018-03-23 16:37:13
【问题描述】:
我刚刚开始从事 .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;"
},
【问题讨论】:
-
如果所有开发人员都在同一个网络上,您只需在一台机器上设置 SQL Server 并供所有开发人员访问。这样,每个人的连接字符串都将完全相同,并且不需要将对数据库的更改复制到所有机器上,因此可以保证它们都使用相同的数据库版本。在这种情况下,只需将
(localdb)和localhost更改为数据库服务器的IP。 -
听起来您可能想要使用开发级应用设置,每个开发人员都可以针对他们的环境进行自定义。
-
或者您可以从环境变量中读取连接字符串。您可以自定义配置系统以读取环境变量,并使这些变量优先于 appsettings 文件中的值。
标签: c# asp.net-core-2.0