我和我的同事正在使用LINQ(以及随后的DBML文件)处理连接到数据库的应用程序。我们每个人都有自己的连接字符串,以便在自己的数据库上工作,如下所示:
public class DbConfig
{
public static string conStr = @"My connection string";
public static string conStr = @"His connection string";
}
每当我们每个人都参与项目时,我们只会注释掉其他连接字符串。
我的连接是,如果我可以引用DBML文件使用的conString
文件中的两个app.config
属性中的任何一个。谢谢。
答案 0 :(得分:2)
您可以使用机器名称来执行此操作,使用以下代码:
public static class ConnectionString
{
public static string Get
{
get
{
if(ConfigurationManager.ConnectionStrings.Count == 0)
throw new Exception("No connection strings");
var machineConnectionString = ConfigurationManager.ConnectionStrings["ConStringPrefix" + Environment.MachineName];
var genericConnectionString = ConfigurationManager.ConnectionStrings["DefaultConString"];
return machineConnectionString ?? genericConnectionString;
}
}
}
然后在app.config中你会有:
<connectionStrings>
<add name="ConStringPrefix@MyPCName" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
<add name="ConStringPrefix@MyFriendPcName" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
<add name="nhibernate.conexao" connectionString="Data Source=.\sqlexpress;Initial Catalog=DatabaseName;Integrated Security=true" providerName="System.Data.SqlClient" />
</connectionStrings>
答案 1 :(得分:0)
您可以创建个人构建配置(https://msdn.microsoft.com/en-us/library/kwybya3w.aspx)并在该配置中定义一些自定义标记,以便在您可以拥有的代码中
#if MyBuild
public static string conStr = @"My connection string";
#endif
#if HisBuild
public static string conStr = @"His connection string";
#endif
定义您的自定义
打开项目的属性页 - &gt;然后,在选择自定义配置后,构建然后修改“条件编译常量”属性。
这就是你如何定义自己的符号,然后根据你当前的构建设置(例如在每页的顶部写#define YourSymbol)#if #endif实际包含/排除代码
另一个解决方案可能只是为您的appsettings添加一个外部引用,并且该引用的文件不包含在您的源存储库中(这样您就不会共享它) 这样任何程序员都可以拥有自己的文件配置
只需在app.config / web.config中添加一行
<appSettings configSource="YourCustomConfiguration.config"/>
然后不要将它添加到teamfoundation或你使用的任何cvs
当然,YourCustomConfiguration.config是一个文件,你可以把它放在任何你想要的地方,只需指定一个相对路径
好吧,我已经说过了appsettings但你可以根据需要使用configSource,<connectionStrings configSource="YourCustomConnectionStrings.config">