我想为我的DataContext Class
应用程序设置超时。我可以找到很多C#(1,2)的例子,翻译成vb.net
它将是
Partial Class SampleDBDataContext
Inherits System.Data.Linq.DataContext
Partial Private Sub OnCreated()
'Put your desired timeout here.
Me.CommandTimeout = 3600
End Sub
End Class
但是它给出了错误:Class '<classname1>' must declare a 'Sub New' because its base class '<classname2>' has more than one accessible 'Sub New' that can be called with no arguments.
我现在有两个问题:
我无法解决"sub new"
问题。如果我放一个
Sub New()
End Sub
我得到的错误是这个构造函数没有退出,但我不确定我应该使用哪个现有的构造函数,因为我之前从未使用过Partial Class
。
第二个是我不确定我必须使用什么SampleDBDataContext
因为我有一个名为MySolution的解决方案,我有一个MySolution.SampleDBDataContext
而我也有System.Date.Linq.DataContext
。
答案 0 :(得分:0)
解决方案是您需要为DataContext
生成的.dbml
类创建部分类。新创建的部分需要具有相应的命名空间和名称作为自动生成的命名空间,以便它们可以被识别为一个类的单元。
一旦您的类被识别为自动生成的DataContext
类的一部分,您甚至不需要手动继承System.Data.Linq.DataContext
,因为自动生成的类已经继承System.Data.Linq.DataContext
。
关于错误消息:
类
'<classname1>'
必须声明一个'Sub New',因为它的基类'<classname2>'
有多个可访问的'Sub New',可以不带参数调用。
这是因为SampleDBDataContext
继承了System.Data.Linq.DataContext
而没有提供构造函数(Sub New
)。基类没有无参数构造函数 - 这是在类初始化时调用的默认构造函数 - 因此编译器无法推断它应该调用哪个参数化构造函数以及应该如何提供参数。在这种情况下,解决方案不是在部分类中提供构造函数,而是让它对应于部分类的正确“另一面”,即自动生成的部分。自动生成的DataContext
需要声明所有构造函数,以便您的部分类没有义务提供一个。