Поиск по имени организации и дате последнего изменения
У меня есть несколько команд, хранящихся в RavenDb, и все они реализуют ICommand. Я хочу иметь возможность поиска по метаданным последней модификации и Raven-Entity-Name. В настоящее время я делаю мульти-карту для каждой команды, как показано ниже:
public class CommandAuditSearch_Index : AbstractMultiMapIndexCreationTask
{
public class Results
{
public string CommandType { get; set; }
public DateTime LastModified { get; set; }
}
public CommandAuditSearch_Index()
{
AddMap(employees => employees.Select(x => new
{
CommandType = MetadataFor(x).Value("Raven-Entity-Name"),
LastModified = MetadataFor(x).Value("Last-Modified")
}));
AddMap(employees => employees.Select(x => new
{
CommandType = MetadataFor(x).Value("Raven-Entity-Name"),
LastModified = MetadataFor(x).Value("Last-Modified")
}));
Index(results => results.CommandType, FieldIndexing.Analyzed);
}
}
Я запрашиваю это следующим образом:
session.Query()
.Where(x => x.CommandType == commandType && x.LastModified >= DateTime.Today).OfType().ToList();
Я знаю, что в Raven уже встроен индекс для получения тега (имени сущности) и даты последнего изменения, но я не могу понять, как получить результаты, как показывает мой индекс выше.
Кто-нибудь может указать мне правильное направление статического индекса, где я неНужно ли иметь несколько карт, как указано выше, для каждой команды, которую я должен запросить, что дает мне результаты в виде списка ICommands?
Спасибо
Пэдди