Как настроить приложение 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
все конструкторы объявлены так, что ваш частичный класс не обязан предоставлять его.