Я не знаю, как правильно сформулировать вопрос, поэтому, пожалуйста, потерпите меня ...
У меня есть 3 класса: сервер, база данных и таблица. Каждый класс имеет свойство «Имя». Как я хочу, чтобы это работало, так это то, что на каждом сервере может быть несколько баз данных, и каждая база данных может иметь несколько таблиц. Так что в классе Server у меня есть это свойство.
Private _databases As List(Of Database)
Public Property Databases() As List(Of Database)
Get
Return _databases
End Get
Set(ByVal value As List(Of Database))
_databases = value
End Set
End Property
И у меня есть нечто похожее в классе Database для таблиц. Теперь это работает нормально, потому что я могу сделать что-то подобное, чтобы получить все базы данных на сервере.
For Each db In s.Databases 's being the server object
Debug.Print(db.Name)
Next
Я хотел бы расширить эти классы. Я хочу, чтобы класс сервера обрабатывал всю информацию о соединении, и я хотел бы, чтобы другие классы использовали в них информацию о соединении класса сервера.
Например, я устанавливаю класс сервера и задаю строку подключения к серверу. Затем я хочу, чтобы класс базы данных использовал свойство serverclass.connectionstring для подключения к серверу и получения списка всех баз данных. Но я хочу сохранить этот код в классе базы данных. Как я могу это сделать?
Я приложил код того, что я хочу сделать.
Public Class Server
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Private _databases As List(Of Database)
Public Property Databases() As List(Of Database)
Get
Return _databases
End Get
Set(ByVal value As List(Of Database))
_databases = value
End Set
End Property
End Class
'-----New class
Public Class Database
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Private _tables As List(Of Table)
Public Property Tables() As List(Of Table)
Get
Return _tables
End Get
Set(ByVal value As List(Of Table))
_tables = value
End Set
End Property
'This is where I need help!
Private Sub LoadTables ()
dim connectionstring as string = server.connectionstring 'Possible?
'Do database stuff
End Class
Спасибо за чтение!