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.Name,
Type = doc.Type,
};"
}
}
}
Is there something similar to the generic AbstractIndexCreationTask<T> that will allow me to define a heterogeneous index with lambda expressions?
Take a look here: https://groups.google.com/forum/#!topic/ravendb/9wvRY0OiGBs
It’s basically the same question and the short answer is: