开发者

RavenDB: Indexing documents from multiple collections

I have several document collections that occasionally need to be pulled together into a single index for reporting purposes.

This FAQ provides a solution for writing such an index in Raven Studio: http://ravendb.net/faq/indexing-across-entities

While I understand I won't get full compile-time checking, I'm trying to avoid completely unchecked code like this:

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.Nam开发者_运维问答e,
                        Type = doc.Type,
                    };"
        }
    }
}

Is there something similar to the generic AbstractIndexCreationTask<T> that will allow me to define a heterogeneous index with lambda expressions?


You can use WhereEntityIs(names), like this:

from doc in docs.WhereEntityIs<Vehicle>("Cars", "Trains", "Boats", "Planes")
select new 
{
  doc.Cost,
  doc.Name,
  doc.Type
}


Take a look here: https://groups.google.com/forum/#!topic/ravendb/9wvRY0OiGBs

It's basically the same question and the short answer is:

"right now there isn't a better option, but there will be in the future"

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜