#vb.net #ravendb
#vb.net #ravendb
Вопрос:
Я использую EmbeddableDocumentStore для получения записей, хранящихся в raven.
Ниже VB.NET код предназначен для доступа к данным raven
Dim documentStore As EmbeddableDocumentStore = New EmbeddableDocumentStore()
documentStore.DataDirectory = "D:TestServer1"
documentStore.DefaultDatabase = "TestDB1"
documentStore.Url = "http://localhost:8585/"
documentStore.Initialize()
Dim session As Document.DocumentSession = documentStore.OpenSession()
Dim LineItems = session.Query(Of LineItem)()
Приведенный выше код извлекает записи из базы данных TestDB1, аналогично у меня есть база данных TestDB2
Теперь у меня есть два вопроса
-
Как получить доступ ко всем записям из
Server1.TestDB1.LineItem
иServer1.TestDB2.LineItem
-
Как получить доступ ко всем записям из
Server1.TestDB1.LineItem
иServer2.TestDB1.LineItem
Ответ №1:
Несколько вещей:
-
Вы должны открывать
Using
сеанс из состояния. -
Когда вы это сделаете, вы можете передать имя базы данных в качестве параметра
OpenSession
методу. -
Если вы регулярно работаете с несколькими базами данных, то вам, вероятно, следует передавать имя базы данных каждый раз, когда вы открываете сеанс, вместо назначения базы данных по умолчанию.
-
An
EmbeddableDocumentStore
выполняется в контексте процесса, выполняющего его, поэтому вы не подключаетесь к серверу. URL-адрес используется только при использовании обычногоDocumentStore
и подключении к экземпляру RavenDB, запущенному в другом месте — в этом случаеDataDirectory
он не будет использоваться. -
Если вы используете
DocumentStore
и подключаетесь к серверам в другом месте, то вам понадобятся два отдельных экземпляраDocumentStore
— один для Server1, а другой для Server2. -
Однако нет никакого смысла запускать два отдельных
EmbeddableDocumentStore
экземпляра в одном процессе. Это сработало бы, но я не вижу никаких преимуществ.