我正在尝试为我的数据访问层设置连接字符串,该数据访问层使用来自另一个项目的Web.Config文件中的值。
我创建一个新的类库并添加一个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连接字符串值。
我可能做错了什么?
答案 0 :(得分:3)
好的,首先在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()