Linq to sql 管理不同的开发者';将LINQ下的连接字符串转换为SQL
我的源代码在Subversion中,当两台不同的计算机具有不同的连接字符串时,我遇到了问题 LINQtoSQL设计器似乎只喜欢使用相同的连接字符串Linq to sql 管理不同的开发者';将LINQ下的连接字符串转换为SQL,linq-to-sql,development-environment,Linq To Sql,Development Environment,我的源代码在Subversion中,当两台不同的计算机具有不同的连接字符串时,我遇到了问题 LINQtoSQL设计器似乎只喜欢使用相同的连接字符串 由于开发人员具有不同的本地配置,设计器是否可以使用不同的连接字符串,但web应用程序中的实际使用情况来自web.config?不幸的是,这是LINQ to SQL设计器的一大难题。我不知道有什么方法可以强制VisualStudio在将表或存储过程拖到设计图面上时从不添加默认连接字符串 因此,我们致力于解决这一问题: 我们从不保存我们的开发密码 在更新
由于开发人员具有不同的本地配置,设计器是否可以使用不同的连接字符串,但web应用程序中的实际使用情况来自web.config?不幸的是,这是LINQ to SQL设计器的一大难题。我不知道有什么方法可以强制VisualStudio在将表或存储过程拖到设计图面上时从不添加默认连接字符串 因此,我们致力于解决这一问题:
唉,这不是一个理想的情况。希望VS2010能够“修复”这个问题 我遇到了这个问题,找到了你的问题。以下是我们现在使用的解决方案:
public partial class MyCustomDBDataContext
{
public MyCustomDBDataContext() :
base(Configuration.GetDatabaseConnectionString())
{
}
}
现在,这应该可以解决开发人员以及部署到测试和生产环境时的问题。根据我的应用程序上的指导原则,现在根据HttpContext.Current.Request是否为本地,使用不同的连接字符串
//using System.Web.Configuration;
partial void OnCreated()
{
//Change this condition to your needs
var isLocal = HttpContext.Current.Request.IsLocal;
this.Connection.ConnectionString = WebConfigurationManager.ConnectionStrings[isLocal ? "localConnectionstring" : "otherConnectionstring"].ToString();
}
VS2010 Beta 2没有修复此问题。VS2013似乎也没有修复此问题。VS2019似乎也没有修复此问题=|我只是想为我的项目实现这个,但是我得到了一个错误“已经为…定义了一个方法”,因为现在它有两个默认构造函数的声明。我知道这是一个旧的注释,但不管怎样…从一个开放的、集中的。dbml的“属性”面板中,你需要展开“连接”,然后设置“应用程序设置”至
False
。这将从dbml的designer.cs中删除无参数构造函数,这意味着分部类中的构造函数将不再发出“已定义”错误。一个缺点是,如果在dbml中删除/添加一个表,它将重置连接字符串并将应用程序设置设回True。是的,这很烦人。