1

ASP.NET MVC3 上に構築された個人のブログ プロジェクトに RavenDB を使用したいと考えています。

私は自分のソリューションに複数のプロジェクトを持ちたいので、Web プロジェクトが呼び出すデータストアとして RavenDB を使用するブログ エンジンとして、1 つの Web プロジェクトと別のクラス ライブラリを用意します。

RavenDB をクラス ライブラリから使用できるようにするには、どのように設定すればよいですか?

4

2 に答える 2

0

検討できるオプションの 1 つは、制御の反転 / 依存性注入を使用して DocumentStore のインスタンスをシングルトンとして作成し、コンストラクターを介してサービスに注入することです。私は Munq を使用しているので、私の例ではそれを使用しますが、考慮すべき IOC フレームワークは他にもたくさんあります。

// In your Global.asax Application_Start
// MUNQ.  This will give you a RavenDB IDocumentStore as Singleton
var ioc = MunqDependencyResolver.Container;
ioc.Register<IDocumentStore>(c => InitializeRaven()).WithLifetimeManager(new ContainerLifetime());

// Initialize yourself some RavenDB
public static IDocumentStore InitializeRaven()
{
    DocumentStore instance = new DocumentStore { Url = "http://localhost:8080/" };
    instance.Initialize();
    return instance;
}

これにより、アプリケーションの存続期間全体で使用する DocumentStore の単一のインスタンスが取得されます。

これは、追加のガイダンスを提供するスタック オーバーフローの質問です (Autofac):

ASP.NET MVC 3、RavenDB、および Autofac Issue Plus 2 その他の Autofac に関する質問

そして、それを使用する MSNBC の例 (Ninject):

http://development.msnbc.msn.com/_news/2011/08/19/7419461-ninjectmvc3-dependency-injection-in-30-seconds-or-less?lite

于 2012-05-31T15:10:33.250 に答える
-1

RavenDB に関するチュートリアルやドキュメントを読みましたか? データベースに接続してクエリを実行できる を作成しDocumentStoreます。

public IEnumerable<Company> GetCompanies()
{
    using (var dc = new DocumentStore("localhost", 8080).Initialize())
    using (var session = dc.OpenSession())
    {
        return session
            .Query<Company>("regionIndex")
            .Where("Region:Europe")
            .ToArray();
    }
}
于 2012-05-31T06:20:24.700 に答える