私のシナリオは次のとおりです。初期化された埋め込みRavenDBインスタンスをクラスライブラリで参照する方法は?
私はクラスライブラリ(DLL)で実装されているカスタムRavenDB membership providerを持っています。このプロバイダーは、ユーザーおよび役割の情報を保管および検索するためにデータベースにアクセスする必要があります。私は同じアプリケーションデータベースを使用してメンバーシップ情報を保存して、もう1つのデータベースがないようにしたいと思います。
私は、クラスライブラリのコード内の既に初期化されたデータベース(appデータベース)への参照を取得する方法を知りません。
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" />
どのようにすることができ、私は私が...ここに:)
いくつかのコードを間違った道を進んでいると思いますカスタムメンバーシッププロバイダ内で同じデータベースを再利用しますか?何か案は?
私はクラスライブラリのコードファイルをWebプロジェクトに移動することを考えました。このようにして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 ); ' –