Linq to sql LINQ到SQL数据上下文和连接问题

Linq to sql LINQ到SQL数据上下文和连接问题,linq-to-sql,connection,datacontext,Linq To Sql,Connection,Datacontext,我正在为我的网站使用LINQtoSQL来访问两个数据库。第一个数据库是网站(我称之为website)数据,第二个数据库是交易历史(我称之为website_HISOTRY)。不久前,当我将网站_HISOTRY中的一个表添加到我的datacontext中时,我收到了某种警报,我点击OK(可能不是最好的主意)。我记得是VisualStudio抱怨数据库的连接与我的配置或类似的东西不同。在我发布到服务器之前,一切正常。我一直收到一个数据库未找到错误,当我记录连接字符串时,我发现了这个错误 网站历史记录

我正在为我的网站使用LINQtoSQL来访问两个数据库。第一个数据库是网站(我称之为website)数据,第二个数据库是交易历史(我称之为website_HISOTRY)。不久前,当我将网站_HISOTRY中的一个表添加到我的datacontext中时,我收到了某种警报,我点击OK(可能不是最好的主意)。我记得是VisualStudio抱怨数据库的连接与我的配置或类似的东西不同。在我发布到服务器之前,一切正常。我一直收到一个数据库未找到错误,当我记录连接字符串时,我发现了这个错误

网站历史记录

数据源=MYCOMPUTER\SQLEXPRESS;初始目录=网站历史记录;集成安全性=真

网站

数据源=my.dyndns.net;网络库=DBMSSOCN;初始目录=网站;用户ID=网站用户;密码=*******

我还发现网站的构造函数需要一个连接字符串(不像网站有一个无参数构造函数)。我更改了构造函数,但每次我向datacontext添加一个表时,它都会更改回来。我在另一个问题中读到了关于将DataContext连接属性设置为Application=true的内容。我已尝试此操作,但无法将“设置属性名称”设置为正确的连接


我不知道我做了什么煽动了这种行为。任何帮助都将不胜感激。

你所做的一切都行不通。数据库上下文是到单个数据库的连接。不应尝试将其他数据库中的表添加到特定上下文中。事实上,这可能根本不起作用。如果您发现自己正在处理多个数据库,则需要有多个数据库上下文对象,每个数据库一个


顺便说一句,我想你会发现,如果你接受更多的回答,你的问题会得到更多的答案。你的录取率只有25%左右。这可能会阻止人们响应您。

数据上下文应该有多个重载构造函数可供您使用;其中一个请求一个连接字符串。我建议你一直使用这个;原因是,这允许您更改为指向具有相同结构的新数据库,并且它将以这种方式工作。我倾向于创建一个静态类来创建我的数据上下文类,以简化这一过程:

public static class ContextCreator
{
   public static CustomDataContext Create()
   {
     return new CustomDataContext(ConfigurationManager.ConnectionStrings["CName"].ConnectionString);
   }
}

我放弃了,不再和设计师争吵。我现在按照Brian的建议传递连接字符串(即DataAccess.Properties.Settings.Default.WEBSITEHISTORY\u ConnectionString),它可以正常工作。当我检查属性文件时,我发现Web_HISTORY属性缺少这个

[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
我还没有研究过它,但我敢打赌这会导致它使用我的DataAccess属性中的默认连接,而不是web配置

根据布赖恩的评论,他描述的情景是我认为导致这一切的原因


谢谢你的帮助

对不起,我应该提到我有两个数据上下文。一个用于网站,一个用于网站历史记录。网站datacontext运行得很好,它的网站历史给我带来了问题。谢谢你的反馈。我会更新我的问题。我会尝试一下。我已经删除了网站历史记录的datacontext,并将表添加回,我一直得到相同的行为,我肯定我的连接字符串是正确的。就好像Visual Studio无法识别我的网站历史记录的连接属性一样。我上面提到的方法更多的是针对运行时而不是设计时。。。当它弹出您提到的警告时,这意味着与DB的连接与上次尝试连接的连接不同(用户ID不同,或者DB的名称不同)。我在我的多人团队中有一个弹出窗口,我们每个人都从本地数据库中拖入表格。所以我不确定是什么导致了你的具体问题;我不确定我是否100%理解它。对不起,什么是“DC”?非常令人困惑的答案。