2012-04-04 10 views
3

複数のプロジェクトやソリューションでRavenDbを使用して、同じ製品のすべてである3つの異なるデータベースにアクセスしています。例えば、私はidオーバーライドのために ' - 'を使って、 'Web'中心のデータベースとバックエンドデータベースからユーザー情報といくつかのデータをフェッチする複数のMVCプロジェクトを持っています(しかし、私はこれをクラスのサブセット「ウェブ」データベース)。そして、私はサービス(MVCプロジェクトだけでなく)によって使用される別のバックエンドデータベースを持っています。最後に、バックエンドデータベースを構築するために別の一連のサービスで使用する3番目のtemp/scratchデータベース。もちろん、これらのすべてには、さまざまなクラスライブラリ、さらにはコンソールテスト、シード、インテグレーションテストアプリからアクセスしています。RavenDbの設定とDocumentStoreの抽象化?

これらのすべてを管理することは、かなり迷惑になりつつあります。 dbにアクセスするための新しいコンソールアプリケーションやクラスライブラリを作成するたびに、各プロジェクトの設定とカスケードパッケージを設定し、インデックスが作成されていることを確認する必要があります。私の場合は、サーバ/クライアントバイナリの新しい不安定版をインストールしてください。

これを簡単に管理する方法はありますか?

私はDocumentStoreの作成と初期化を抽象化しようとしましたが、インデックス作成はそれ自身のプロジェクトと参照に抽象化しようとしました。しかし、他のプロジェクトでは、newtonsoft.json(およびnlog)をパッケージディレクトリから手動で追加する必要がありました。

また、静的プロパティを持つクラスにDocumentStoreを抽象化しようとすると、次のようになります。 未割り当てのドキュメントストアのStackTraceが記録されました。テストでの競合状態を避けるため、テストにドキュメントストアを必ず設置してください。

誰もがこれらの問題を処理するための考えを持っていますか?

おかげ

+0

これはまだ問題ですか? Raven 2.0クライアントは、newtonsoft.jsonとnlogに依存しません。 –

答えて

-2

私は参照を手動で追加が大きな問題であるとは思いませんが、あなたにも、実際のnuget参照を追加することができます。 DocumentStore not disruptedエラーは、不安定な(デバッグビルド)でのみ発生し、リリースビルドでは発生しないものです。