2014-09-02 57 views
0

我試圖爲我的數據訪問層設置連接字符串,該層使用來自另一個項目的Web.Config文件中的值。如何在Linq中將連接字符串設置爲SQL構造函數

我創建一個新的類庫並添加一個dbml(Linq to SQL)文件並拖動一個表。

我那麼這段代碼添加到代碼文件

Partial Public Class MyDataContext 
    Public Sub New() 
     MyBase.New(ConfigurationManager.ConnectionStrings("WebConnectionString").ConnectionString, mappingSource) 
     OnCreated() 
    End Sub 
End Class 

這給了我一個錯誤「‘的Public Sub New()’有多個具有相同簽名的定義。」

我明白了錯誤意味着如何在周圍進行快速搜索,因爲當我重新編譯項目時仍存在同樣的問題。接近,這是/的方式是重寫OnCreated方法,所以我的代碼更改爲:

Private Sub OnCreated() 
    Me.New(ConfigurationManager.ConnectionStrings("WebConnectionString").ConnectionString, mappingSource) 
End Sub 

這給了錯誤「構造函數調用是有效的僅作爲實例構造函數的第一個語句」但不是很多的方式來克服它(以及我看到幾個C#的例子,但我確定我將它轉換爲正確的VB .Net代碼)

經過進一步研究,無論我做什麼,我似乎都不能設置我的DAL中的連接字符串應該使用另一個項目的Web.Config連接字符串值。

我能做什麼錯?

回答

3

OK,在C#第一:

partial class MyDataContext 
{ 
    public static MyDataContext Create() 
    { 
      return new MyDataContext(ConfigurationManager.ConnectionStrings("WebConnectionString").ConnectionString, 
      mappingSource); 
    } 
// etc 
} 

現在,我嘗試翻譯在VisualBasic.NET

Partial Public Class MyDataContext 
Public Shared Function Create() as MyDataContext 
    return New MyDataContext (ConfigurationManager.ConnectionStrings("WebConnectionString").ConnectionString, 
      mappingSource) 
End Function 
End Class 

通過調用:

Dim db as MyDataContext = MyDataContext.Create() 
+0

我得到的錯誤「構造調用僅作爲實例構造函數中的第一條語句有效。「如果我做錯了什麼,那麼我右鍵單擊dbml文件並選擇查看代碼。那就是上面代碼的位置。 – Computer 2014-09-02 18:40:27

+0

對不起,我的vb有點不穩定。我修正了語法。現在就試試。 – 2014-09-02 19:04:19

相關問題