17

http://ravendb.net/tutorials/hello-worldにあるコードに基づいて、RavenDBの簡単なテストを正常に実行できました。

次に、Embedded Mannerで実行しようとしましたが、次のエラーが発生し続けます。

Message: Could not find transactional storage type: Raven.Storage.Esent.TransactionalStorage, Raven.Storage.Esent  
StackTrace:    at Raven.Database.Config.InMemoryRavenConfiguration.CreateTransactionalStorage(Action notifyAboutWork) in c:\Builds\raven\Raven.Database\Config\InMemoryRavenConfiguration.cs:line 272
   at Raven.Database.DocumentDatabase..ctor(InMemoryRavenConfiguration configuration) in c:\Builds\raven\Raven.Database\DocumentDatabase.cs:line 109
   at Raven.Client.Client.EmbeddableDocumentStore.InitializeInternal() in c:\Builds\raven\Raven.Client.Embedded\EmbeddableDocumentStore.cs:line 130
   at Raven.Client.Document.DocumentStore.Initialize() in c:\Builds\raven\Raven.Client.Lightweight\Document\DocumentStore.cs:line 388
   at Tests.RavenEmbedded.RavenDB..ctor() in C:\Users\Pranav\Documents\Projects\Repositories-Clone\Common-clone\Tests\RavenDB.cs:line 114
   at Tests.TestRavenDB.Basics() in C:\Users\Pranav\Documents\Projects\Repositories-Clone\Common-clone\Tests\RavenDB.cs:line 170 

設定:

ターゲットフレームワークは.NETFramework4です。

プロジェクトに次の参照を追加しました。

  1. \ RavenDB-Build-309 \ EmbeddedClient \ Raven.Client.Embedded.dll
  2. \ RavenDB-Build-309 \ Client \ Raven.Client.Lightweight.dll
  3. \ RavenDB-Build-309 \ EmbeddedClient \ Raven.Storage.Esent.dll
  4. \ RavenDB-Build-309 \ EmbeddedClient \ Raven.Storage.Managed.dll

コードは次のとおりです。

名前空間Tests.RavenEmbedded
{{
    Raven.Client.Clientを使用します。
    Raven.Client.Documentを使用します。
    Raven.Storage.Esentを使用します。
    Raven.Storage.Managedを使用します。
    Tests.RavenDataを使用します。

    クラスRavenDB
    {{
        public RavenDB()
        {{
            // EmbeddableDocumentStore store = new EmbeddableDocumentStore {DataDirectory = @ "C:\ Temp \ RavenData"};
            //Raven.Storage.Esent.TransactionalStorage
            var store = new EmbeddableDocumentStore {DataDirectory = @ "C:\ Temp \ RavenData"};
            store.Initialize();

            #regionデータの書き込み
            using(var session = store.OpenSession())
            {{
                varproduct=新製品
                {{
                    コスト=3.99m、
                    名前="ミルク"、
                };
                session.Store(product);
                session.SaveChanges();

                session.Store(new Order
                {{
                    Customer = "customers / ayende"、
                    OrderLines =
                      {{
                          新しいOrderLine
                          {{
                              ProductId = product.Id、
                              数量=3
                          }、
                      }
                });
                session.SaveChanges();
            }
            #endregion

            #regionデータの読み取り
            using(var session = store.OpenSession())
            {{
                var order = session.Load( "orders / 1");
                Debug.Print( "顧客:{0}"、order.Customer);
                foreach(var orderLine in order.OrderLines)
                {{
                    Debug.Print( "Product:{0} x {1}"、orderLine.ProductId、orderLine.Quantity);
                }
                session.SaveChanges();
            }

            #endregion

        }
    }
}

名前空間テスト
{{
    パブリッククラスTestRavenDB
    {{
        public static void Basics()
        {{
            試す
            {{
                // var db = new RavenClientServer.RavenDB();
                var db = new RavenEmbedded.RavenDB();
            }
            キャッチ(例外例)
            {{

                Debug.Print( "メッセージ:{0}"、ex.Message);
                Debug.Print( "StackTrace:{0}"、ex.StackTrace);

            }
        }

    }
}

私はこれを数日間検索してみましたが、いくつかの異なるバリエーションも試しました。何が起こっているのかわかりません。

4

2 に答える 2

17

groups.google.com/group/ravendb/topics の Ayende Rahien に感謝します。

解決策は、「Raven.Storage.Esent」参照をメイン プロジェクトに追加することでした。これは、Visual Studio と間接参照の問題です。

そこに投稿することを提案してくれた@Derekに感謝します。

-- プラナフ

于 2011-03-31T12:56:43.030 に答える
5

Raven.Storage.Esent.dll への参照を追加する必要があります

于 2011-09-06T10:58:49.843 に答える