我开始玩 RavenDB(到目前为止看起来真的很棒)。但是我一直在尝试以下操作。
我像这样存储一个新文档
Product p = new Product() { Title = "My Fancy Product" };
RavenSession.Store(p);
现在我想获取新存储文档的 ID。谁能做到这一点?只是p.Id
在商店似乎不起作用后才能访问...
提前致谢!
类的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(object) 来检索。换句话说,拥有 Id 属性完全是可选的,因此只有在需要此信息更易于访问时才能显式定义此类属性。