Как настроить приложение DataContext.CommandTimeout в целом

Я хочу установить тайм-аут для моего 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,

1 ответ

Решение

Решение состоит в том, что вам нужно создать частичный класс для DataContext класс, сгенерированный из .dbml, Вновь созданный частичный элемент должен иметь соответствующее пространство имен и имя как автоматически сгенерированное, чтобы их можно было распознать как одну единицу класса.

Как только ваш класс распознается как часть автоматически сгенерированного DataContext класс, вам даже не нужно наследовать вручную System.Data.Linq.DataContextпотому что автоматически сгенерированный один наследует System.Data.Linq.DataContext,

По поводу сообщения об ошибке:

Учебный класс '<classname1>' должен объявить Sub Sub, потому что его базовый класс '<classname2>' имеет более одного доступного Sub Sub, который может быть вызван без аргументов.

это потому что SampleDBDataContext наследуется System.Data.Linq.DataContext без предоставления конструктора (Sub New). Базовый класс не имеет конструктора без параметров, который является конструктором по умолчанию для вызова инициализации класса, так что компилятор не может определить, какой параметризованный конструктор он должен вызывать и как должны быть предоставлены параметры. Решение в этом случае состоит не в том, чтобы предоставить конструктор в вашем частичном классе, а в том, чтобы он соответствовал правильной "другой стороне" частичного класса, то есть автоматически сгенерированной. Автогенерируемая DataContext все конструкторы объявлены так, что ваш частичный класс не обязан предоставлять его.

Другие вопросы по тегам