我目前正在努力处理一些琐碎的事情,也许是这样,但是我找不到合适的解决方案。
我的问题源于RavenDB默认ID结构。假设我们使用HiLo算法创建一个人,我们将获得第一个文档:
people/A-1
并且相关的收藏集“人物”现在有一位成员。
我的问题真的很简单:设计一个普通的RESTful方法来获得一个人:
GET people/:id
并使用示例文档ID对其进行调用,我的呼叫将变为:
GET people/people/A-1
显然,这是行不通的,因为斜杠字符是路由分隔符,但对于RavenDB,它也是实体ID的一部分。
我尝试使用其他分隔符(更改客户端代码上的约定),以便获得一个ID,people#A-1
但RavenDB Studio无法识别该ID :如果我尝试通过其ID将两个文档“链接”在一起,则只有标准格式被识别。我也找不到在服务器级别上仅在客户端级别上在数据库上设置约定的方法。
这种解决方案也感觉像是一个肮脏的解决方法,我正在寻找正确的做事方式。
我知道我可以使用任意ID,例如不带任何前缀的电子邮件地址,但这对我要存储的所有类型的实体都不可行,自然键并不是在每种情况下都可以选择的。
因此,我要问的是比我在使用RavenDB方面更有经验的任何人。解决此问题的正确方法是什么?
米脂
相关分类