【问题标题】:Ravendb doesn't save propery Raven/Hilo/LoggingMessagesRavendb 不保存属性 Raven/Hilo/LoggingMessages
【发布时间】:2013-09-05 12:51:11
【问题描述】:

我在将对象保存到 Ravendb 时遇到问题。 每次我将对象保存到 Ravendb 时, 它只保存在下面 Raven/Hilo/LoggingMessages { “最大”:32 } 我什至在 LoggingMessages 类上没有名为 Max 的属性。 而且,它一直在这样做。

我在一个使用 NserviceBus 的项目中使用了这个 Ravendb。 我的假设是 NserviceBus 使用的 Ravendb 客户端库与其他 Ravendb 客户端不同。 因为我在其他没有 NserviceBus 的项目中保存 LoggingMessage 类型的对象没有问题。

LoggingMessage errormessage = new LoggingMessage(); 
errormessage.MessageBody = "test"; 
errormessage.MessageId = "test"; 

using (var store = new DocumentStore { ConnectionStringName = "RavenDB" } ) 
{ 
    store.Initialize(); 
    using (var session = store.OpenSession()) 
    { 
        session.Store(errormessage); 
        session.SaveChanges(); 
    } 
} 

【问题讨论】:

    标签: ravendb nservicebus ravendb-studio


    【解决方案1】:

    这就是 RavenDB 生成 ID 的方式。它是一个系统文件。不用担心。

    可能发生的情况是您将此文档保存到 NServiceBus 正在使用的数据库中,但您正在查看 RavenDB 系统数据库,或者您正在将其写入单独的数据库。

    在 Raven Studio 中,查看右上角的“数据库”列表。

    在您的代码中,您可以在连接字符串中设置数据库名称,或者作为new DocumentStore 构造函数的参数,或者作为OpenSession 方法的参数。

    【讨论】:

    • 根据您编写的代码,我认为您没有理由不应该在数据库中找到您的文档。它的 ID 应该类似于 LoggingMessages/1
    • 谢谢马特。我确实得到了像 LoggingMessage/35 之类的 id 或类似的东西,但对象本身并没有出现在 Ravendb Studio 中。如果我使用 Raven Client,那是另一个没有 nservicebus 的项目。我可以在 Ravendb Studio 中看到对象 (localhost:8082/raven/studio.html)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多