我开始玩RavenDB(到目前为止看起来真的很棒)。但是我不得不尝试以下方法。
我存储了一个像这样的新文档
Product p = new Product() { Title = "My Fancy Product" };
RavenSession.Store(p);
现在我想获取新存储文档的ID。谁能做到这一点?只是在商店似乎不起作用后访问p.Id
...
提前致谢!
答案 0 :(得分:9)
Id
类的Product
属性必须是string
类型而不是整数。
然后,您将能够在操作后检索自动生成的ID:
Product p = new Product() { Title = "My Fancy Product" };
RavenSession.Store(p);
string id = p.Id;
可以在documentation
(Document IDs
部分)中找到更多信息:
在上面的示例中,我们为BlogPost提供了一个字符串Id属性 把它留空了。这个属性将被用作“主要属性” 密钥“对于本文档。请注意RavenDB如何为我们生成ID, “BlogPosts / 1”,基于我们将讨论的默认约定 一秒钟。
如果文档上没有Id属性,RavenDB仍会生成 一个唯一的ID,但它只能通过调用来检索 session.Advanced.GetDocumentId(对象)。换句话说,拥有Id property完全是可选的,因此您可以明确定义这样的 只有当您需要更容易获取此信息时,才能使用该属性。