如何设置DataContext.CommandTimeout应用程序

时间:2015-03-30 16:41:44

标签: vb.net linq datacontext command-timeout

我想为我的DataContext Class应用程序设置超时。我可以找到很多C#(12)的例子,翻译成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

1 个答案:

答案 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需要声明所有构造函数,以便您的部分类没有义务提供一个。