2010-02-05 145 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)] 

我還沒有看過,但但我打賭,這是導致它用在我的數據訪問屬性的默認連接,而不是網絡配置。

每個布賴恩的評論,他描述的情景是我認爲造成這種情況的開始。

謝謝大家的幫助!