Поиск по имени организации и дате последнего изменения

У меня есть несколько команд, хранящихся в RavenDb, и все они реализуют ICommand. Я хочу иметь возможность поиска по метаданным последней модификации и Raven-Entity-Name. В настоящее время я делаю мульти-карту для каждой команды, как показано ниже:

public class CommandAuditSearch_Index : AbstractMultiMapIndexCreationTask<CommandAuditSearch_Index.Results>
    {
        public class Results
        {
            public string CommandType { get; set; }
            public DateTime LastModified { get; set; }
        }

        public CommandAuditSearch_Index()
        {
            AddMap<NewEmployeeStartCommand>(employees => employees.Select(x => new
            {
                CommandType = MetadataFor(x).Value<string>("Raven-Entity-Name"),
                LastModified = MetadataFor(x).Value<DateTime>("Last-Modified")
            }));

            AddMap<EmployeeLeaverCommand>(employees => employees.Select(x => new
            {
                CommandType = MetadataFor(x).Value<string>("Raven-Entity-Name"),
                LastModified = MetadataFor(x).Value<DateTime>("Last-Modified")
            }));

            Index(results => results.CommandType, FieldIndexing.Analyzed);
        }
    }

Я запрашиваю это следующим образом:

session.Query<CommandAuditSearch_Index.Results, CommandAuditSearch_Index>()
                              .Where(x => x.CommandType == commandType && x.LastModified >= DateTime.Today).OfType<ICommand>().ToList();

Я знаю, что в Raven уже встроен индекс для получения тега (имени сущности) и даты последнего изменения, но я не могу понять, как получить результаты, как показывает мой индекс выше.

Кто-нибудь может указать мне правильное направление статического индекса, где мне не нужно иметь мультикарты, как указано выше, для каждой команды, которую я должен запросить, которая дает мне результаты в виде списка ICommands?

Спасибо

Пэдди

Ответы на вопрос(1)

Ваш ответ на вопрос