2011-03-29 33 views
17

मैं पर पाया सफलतापूर्वक कोड के आधार पर RavenDB के लिए एक साधारण परीक्षण चलाने के लिए सक्षम था: http://ravendb.net/tutorials/hello-worldएम्बेडेड RavenDB साथ त्रुटि "लेन-देन संबंधी भंडारण प्रकार नहीं मिल सका"

अगला मैं एक एंबेडेड तरीके से भागने की कोशिश की लेकिन

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 

सेटअप::

लक्ष्य ढांचे मैं निम्न त्रुटि हो रही पर रखने .NET फ्रेमवर्क 4

मैं अपने प्रोजेक्ट के लिए निम्न संदर्भ जोड़ा है:

  1. \ RavenDB-बिल्ड-309 \ EmbeddedClient \ Raven.Client.Embedded.dll
  2. \ RavenDB-बनाएँ- 309 \ क्लाइंट \ Raven.Client.Lightweight.dll
  3. \ RavenDB-बिल्ड-309 \ EmbeddedClient \ Raven.Storage.Esent.dll
  4. \ RavenDB-बिल्ड-309 \ EmbeddedClient \ Raven.Storage.Managed.dll

कोड है:

 
namespace Tests.RavenEmbedded 
{ 
    using Raven.Client.Client; 
    using Raven.Client.Document; 
    using Raven.Storage.Esent; 
    using Raven.Storage.Managed; 
    using Tests.RavenData; 

    class 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 Write Data 
      using (var session = store.OpenSession()) 
      { 
       var product = new Product 
       { 
        Cost = 3.99m, 
        Name = "Milk", 
       }; 
       session.Store(product); 
       session.SaveChanges(); 

       session.Store(new Order 
       { 
        Customer = "customers/ayende", 
        OrderLines = 
         { 
          new OrderLine 
          { 
           ProductId = product.Id, 
           Quantity = 3 
          }, 
         } 
       }); 
       session.SaveChanges(); 
      } 
      #endregion 

      #region Read Data 
      using (var session = store.OpenSession()) 
      { 
       var order = session.Load("orders/1"); 
       Debug.Print("Customer: {0}", order.Customer); 
       foreach (var orderLine in order.OrderLines) 
       { 
        Debug.Print("Product: {0} x {1}", orderLine.ProductId, orderLine.Quantity); 
       } 
       session.SaveChanges(); 
      } 

      #endregion 

     } 
    } 
} 

namespace Tests 
{ 
    public class TestRavenDB 
    { 
     public static void Basics() 
     { 
      try 
      { 
       //var db = new RavenClientServer.RavenDB(); 
       var db = new RavenEmbedded.RavenDB(); 
      } 
      catch (Exception ex) 
      { 

       Debug.Print("Message: {0} ",ex.Message); 
       Debug.Print("StackTrace: {0} ",ex.StackTrace); 

      } 
     } 

    } 
} 

मैं कुछ दिनों के लिए इस के लिए खोज करने की कोशिश की और कुछ विभिन्न विविधताएं भी कोशिश की है। मुझे यकीन नहीं है कि क्या हो रहा है।

+0

के लिए एक संदर्भ जोड़ने की जरूरत है? http://groups.google.com/group/ravendb/topics –

+0

नहीं, लेकिन मैं वहां पोस्ट करूंगा –

+0

30 9 में कोई समस्या हो सकती है। –

उत्तर

16

groups.google.com/group/ravendb/topics पर Ayende Rahien के लिए धन्यवाद।

समाधान मुख्य परियोजना के संदर्भ में "Raven.Storage.Esent" संदर्भ जोड़ना था। यह विजुअल स्टूडियो और अप्रत्यक्ष संदर्भों के साथ एक मुद्दा है।

धन्यवाद @ डेरेक यह सुझाव देने के लिए कि मैं वहां पोस्ट करता हूं।

- प्रणव

+0

के साथ भी यह Raven.Storage.Esent के संदर्भ की तरह प्रतीत होता है टेस्टप्रोजेक्ट परीक्षण में एक क्लासस्टोर को लिखने वाली कक्षा में जोड़ा जाना चाहिए। रेवेन के साथ खेलना शुरू करने के लिए मेरा पहला टेस्ट लिखते समय मुझे भी यही समस्या थी। –

+0

कोई भी जानता है कि इसका कारण क्या है? क्या वहां कोई काम है इसलिए इसे अन्य परियोजना में जोड़ने की आवश्यकता नहीं है? – CamHart

5

आप यहां पोस्ट किया Raven.Storage.Esent.dll

+0

Thnx, मुझे नहीं पता कि इसे पहली बार क्यों शामिल नहीं किया गया था, क्योंकि इसे पहले ही परियोजना में संदर्भित किया गया था, लेकिन मैंने एक नया प्रकाशन किया और अब सब कुछ आवश्यक था। –