Мой сценарий таков:Как ссылаться на инициализированный встроенный экземпляр RavenDB в библиотеке классов?
У меня есть пользовательский RavenDB membership provider, который реализован в библиотеке классов (DLL). Этот провайдер должен получить доступ к базе данных для хранения и получения информации о пользователе и ролях. Я хотел бы использовать одну и ту же базу данных приложений для хранения информации о членстве, чтобы не иметь еще одну базу данных.
Я не знаю, как получить ссылку на уже инициализированную базу данных (базу данных приложения) внутри кода библиотеки классов. Я думаю, что я иду неправильно здесь ... :)
Некоторый код:
bool embeddedStore = Convert.ToBoolean(config["enableEmbeddableDocumentStore"]);
if (embeddedStore)
{
_documentStore = new EmbeddableDocumentStore()
{
// Here I'm using the same connection string used by the app.
// This gives me an error when I try to open a session in the DocumentStore.
ConnectionStringName =
config["connectionStringName"]
};
}
else
{
_documentStore = new DocumentStore()
{
ConnectionStringName =
config["connectionStringName"]
};
}
Это строка соединения присутствует в Web.config:
<add name="RavenDB" connectionString="DataDir = ~\App_Data\Database" />
Как я могу повторно использовать одну и ту же базу данных в пользовательском поставщике членства? Есть идеи?
Я думал о перемещении файлов кода библиотеки классов в веб-проект. Таким образом, я мог бы легко получить ссылку на DocumentStore
, но код не был бы таким организованным, как хотелось бы.
Я также попытался использовать 2 базы данных RavenDB: 1 для приложения и 1 для поставщика членства, но поскольку я запускаю RavenDB в своем встраиваемом моду, я не мог заставить его работать.
Эти ошибки, которые я получил во время моих попыток до сих пор:
RavenDB Could not open transactional storage.
Temp path already used by another database instance.
Святой Иисус ... Я не хотел идти в контейнер, так как это было бы слишком много для того, что мне нужно. После вашего ответа включился свет, и я пошел по API-интерфейсу. Я сделал то, что описано здесь: https://github.com/csainty/Glimpse.RavenDb/wiki/How-to-use Теперь я использую это после инициализации экземпляра приложения RavenDB: 'RavenDBMembership.Provider.RavenDBMembershipProvider.AttachTo (_documentStore); ' –