每个人如何存储连接线?

Jon*_*ski 14 .net asp.net connection-string web-config

我想知道人们是否可以将他们的解决方案发布到本地数据库的持续问题以及源控制中的一个项目中的许多开发人员之间的不同连接线?

更具体地说,我所说的是一个源代码控制项目,并且许多开发人员都拥有本地数据库的问题.每个开发人员都有自己的连接字符串(命名实例,默认实例,计算机名称,用户名,密码等).每次检入都会覆盖以前的版本,并使用其他人的连接字符串拉取最新版本的结果.

那么,人们,您使用哪种解决方案来解决这个问题?解释他们的解决方案为何起作用,优点和缺点的额外要点.

编辑 请记住,此答案不应仅针对您完全控制设置的企业环境.正确的解决方案应该适用于所有人:企业,初创公司和开源开发人员.

谢谢!

Nat*_*nze 10

对我来说,你的问题似乎意味着两个结果之一:

  1. 在Web.config文件中指定了一个连接字符串,该字符串足够通用,可以用于数据库的所有本地版本.您已经表明,在您无法完全控制的环境中,这不是理想的设置.
  2. 每个开发人员都需要提供他或她自己的连接字符串,该字符串从未被检入源代码管理.

其他一些人已经介绍了第一种情况.使用localhost并遵循数据库名称的约定.对于选项2,我建议指定一个未检入源代码管理的配置源:

<configuration>
  <connectionStrings configSource="connectionStrings.config"/>
</configuration>
Run Code Online (Sandbox Code Playgroud)

编辑:

connectionStrings.config

<connectionStrings>
  <add name="Name" 
    providerName="System.Data.ProviderName" 
    connectionString="Valid Connection String;" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

来自:http://msdn.microsoft.com/en-us/library/ms254494(v=vs.80).aspx

connectionStrings.config将是您从源代码管理中明确排除的项目根目录中的文件.在本地工作时,每个开发人员都需要提供此文件.您的生产连接字符串可以通过构建/部署上的Web.config转换替换.


vcs*_*nes 5

我们所有的开发站都设置有点相同.

  1. 我们对数据库使用集成身份验证,因此不需要存储用户/密码.
  2. 每个人都使用默认实例.
  3. 由于它们都是本地数据库,因此您可以使用localhost.
  4. 相同的数据库名称

所以连接字符串最终可能是:

Data Source=localhost;Initial Catalog=TheDatabaseName;Integrated Security=SSPI;
Run Code Online (Sandbox Code Playgroud)

每个人都使用它.

  • 我认为不是.如果您参与许多项目,您不能指望开发人员为每个项目设置开发环境. (2认同)