2014-09-02 54 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

相关问题