2010-02-05 147 views
1

我正在使用LINQ to SQL为我的网站访问两个数据库。第一个数据库是网站(我将调用WEBSITE)数据,第二个数据库是交易历史(我将称之为WEBSITE_HISOTRY)。当我从WEBSITE_HISOTRY添加一个表到我的datacontext不久前,我收到了一些警告,我点击确定(可能不是最好的主意)。我记得这是关于Visual Studio的抱怨,数据库的连接与我的配置或这些行的不同。一切工作正常,直到我发布到我的服务器。我一直得到一个数据库没有发现错误,当我登录连接字符串时,我发现这一点。LINQ to SQL DataContext和连接问题

WEBSITE_HISTORY

数据源= MYCOMPUTER \ SQLEXPRESS;初始目录= WebSiteHistory;集成安全性= TRUE

网站

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

我还发现WEBSITE_HISTORY datacontext的构造函数需要一个连接字符串(与具有无参数构造函数的WEBSITE不同)。我改变了构造函数,但是每次我添加一个表到datacontext,它都会改回来。我读过另一个关于将DataContext连接属性设置为Application = true的问题。我已经尝试过,但我无法将“设置属性名称”设置为正确的连接。

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

回答

-1

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

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

我会试试这个。我已经删除了WEBSITE_HISTORY的datacontext并添加了表格,并且我一直得到相同的行为,并且我的连接字符串是正确的。它几乎就好像Visual Studio不能识别我的WEBSITE_HISTORY的连接属性。 – jimbo 2010-02-05 18:19:28

+0

上面提到的方法对于运行时来说比在设计时更有意义......当它按照您提到的那样弹出警告时,这意味着与数据库的连接不同于上一次尝试连接到数据库的连接(或者不同的用户ID,或者数据库命名不同)。我在工作中的多人团队中弹出了该弹出窗口,我们每个人都从我们的本地数据库中拖动表格。所以我不确定是什么原因导致你的具体问题;不知道我100%了解它。抱歉。 – 2010-02-05 20:22:25

+0

什么是“DC”?非常令人困惑的答案。 – Rhubarb 2011-10-18 01:32:35

0

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

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

+0

对不起,我应该提到我有两个datacontexts。一个用于WEBSITE,一个用于WEBSITE_HISTORY。 WEBSITE datacontext工作得很好,它的WEBSITE_HISTORY正在给我带来问题。感谢您的反馈。我会更新我的问题。 – jimbo 2010-02-05 18:16:45

0

我放弃了并停止与设计师的战斗。我现在正按照Brian的建议传递连接字符串(即DataAccess.Properties.Settings.Default.WEBSITEHISTORY_ConnectionString)并且它可以工作。当我检查的属性文件我发现WEBSITE_HISTORY财产缺少此

[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] 

我还没有看过,但但我打赌,这是导致它用在我的数据访问属性的默认连接,而不是网络配置。

每个布赖恩的评论,他描述的情景是我认为造成这种情况的开始。

谢谢大家的帮助!