C# 查询ID上的RavenDB索引时出现未索引错误,如何修复?
我有一个RavenDB数据库和两个文档集合。我需要使用multi-map/reduce索引将这两个文档合并到一个业务实体中。如果不合并这两个集合,则业务实体不完整。你可能会争辩说,这表明我的域模型或数据模型被破坏了,但事实就是这样,我对此无能为力。那么,接下来的问题是:-) 基本上有三个文件:C# 查询ID上的RavenDB索引时出现未索引错误,如何修复?,c#,mapreduce,ravendb,C#,Mapreduce,Ravendb,我有一个RavenDB数据库和两个文档集合。我需要使用multi-map/reduce索引将这两个文档合并到一个业务实体中。如果不合并这两个集合,则业务实体不完整。你可能会争辩说,这表明我的域模型或数据模型被破坏了,但事实就是这样,我对此无能为力。那么,接下来的问题是:-) 基本上有三个文件: { // RootDocuments/1 "Foo" : "Bar", "Bar" : "Foo" } { // ExtraDocuments/1 "RootId" : "Roo
{ // RootDocuments/1
"Foo" : "Bar",
"Bar" : "Foo"
}
{ // ExtraDocuments/1
"RootId" : "RootDocuments/1",
"Value" : 2
}
{ // ExtraDocuments/2
"RootId" : "RootDocuments/1",
"Value" : 3
}
由索引组合为以下内容:
{
"Id" : "RootDocuments/1",
"Foo" : "Bar",
"Bar" : "Foo",
"Value" : 5 // The sum of values from the extra documents.
}
因为我总是需要将这两个集合与我的多映射索引结合起来,所以即使基于ID检索实体也需要使用索引进行查询。当我提出一个类似于
session.Query<RootDocumentsByIdIndex.Result, RootDocumentsByIdIndex>().Where(d => d.Id == id).Single();
session.Query().Where(d=>d.Id==Id.Single();
我得到以下错误:
System.ArgumentException:字段“\u文档\u id”未编制索引,无法查询未编制索引的字段
我可以强制RavenDB为Id字段编制索引吗?或者有其他方法来执行此查询吗?如果您显示rootDocumentsByDindex的定义,这会有所帮助您找到解决方案了吗?我在这里也有同样的问题: