RavenDB获取新存储文件的ID

时间:2013-09-06 14:20:33

标签: c# ravendb

我开始玩RavenDB(到目前为止看起来真的很棒)。但是我不得不尝试以下方法。

我存储了一个像这样的新文档

Product p = new Product() { Title = "My Fancy Product" };
RavenSession.Store(p);

现在我想获取新存储文档的ID。谁能做到这一点?只是在商店似乎不起作用后访问p.Id ...

提前致谢!

1 个答案:

答案 0 :(得分:9)

Id类的Product属性必须是string类型而不是整数。

然后,您将能够在操作后检索自动生成的ID:

Product p = new Product() { Title = "My Fancy Product" };
RavenSession.Store(p);
string id = p.Id;

可以在documentationDocument IDs部分)中找到更多信息:

  

在上面的示例中,我们为BlogPost提供了一个字符串Id属性   把它留空了。这个属性将被用作“主要属性”   密钥“对于本文档。请注意RavenDB如何为我们生成ID,   “BlogPosts / 1”,基于我们将讨论的默认约定   一秒钟。

     

如果文档上没有Id属性,RavenDB仍会生成   一个唯一的ID,但它只能通过调用来检索   session.Advanced.GetDocumentId(对象)。换句话说,拥有Id   property完全是可选的,因此您可以明确定义这样的   只有当您需要更容易获取此信息时,才能使用该属性。