0

我想为我的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.

4

1 回答 1

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的所有构造函数都需要声明,这样你的部分类就没有义务提供一个。

于 2015-03-31T03:34:48.330 回答