我有几个文档集合,有时需要将它们合并到一个索引中以用于报告目的。
本 FAQ 提供了在 Raven Studio 中编写此类索引的解决方案:http://ravendb.net/faq/indexing-across-entities
虽然我知道我不会得到完整的编译时检查,但我试图避免像这样完全未经检查的代码:
public class Assets_ById : AbstractIndexCreationTask
{
public override IndexDefinition CreateIndexDefinition()
{
return new IndexDefinition
{
Map = @"from doc in docs
where doc[""@metadata""][""Raven-Entity-Name""] == ""Cars"" ||
doc[""@metadata""][""Raven-Entity-Name""] == ""Trains"" ||
doc[""@metadata""][""Raven-Entity-Name""] == ""Boats"" ||
doc[""@metadata""][""Raven-Entity-Name""] == ""Planes""
select new
{
Cost = doc.Cost,
Id = doc.Id,
Name = doc.Name,
Type = doc.Type,
};"
}
}
}
是否有类似于通用的东西
AbstractIndexCreationTask<T>
这将允许我使用 lambda 表达式定义异构索引?
最佳答案
您可以使用 WhereEntityIs(names),如下所示:
from doc in docs.WhereEntityIs<Vehicle>("Cars", "Trains", "Boats", "Planes")
select new
{
doc.Cost,
doc.Name,
doc.Type
}
关于RavenDB:从多个集合中索引文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7148090/