Не удается проиндексировать массив int RavenDB

Я пытаюсь запросить свойство типа IEnumerable int, чтобы найти все документы в коллекции, которые содержат целочисленное значение в этом свойстве.

Я попытался сделать это с помощью индекса свойства, чтобы вернуть список идентификаторов, которые удовлетворяют запросу. Я проецирую идентификаторы в запросе, но получаю список идентификаторов 0.

Индекс

public class Merchants_CategoryId : AbstractIndexCreationTask<Merchant>
{
    public class Result
    {
        public int MerchantId { get; set; }
        public IEnumerable<int> CategoryIds { get; set; }
    }

    public Merchants_CategoryId()
    {
        Map = merchants => merchants.Select(merchant => new
        {
            CategoryIds = merchant.Header.CategoryIds,
            MerchantId = merchant.Header.Id
        });
    }
}

Запрос

return await session
                .Query<Merchants_CategoryId.Result, Merchants_CategoryId>()
                .Where(x => x.CategoryIds.Any(c => c == categoryId))
                .Select(x => x.MerchantId)
                .ToListAsync();

person whiteangeleyes    schedule 06.07.2017    source источник


Ответы (1)


Показатель:

public class Merchants_CategoryId : AbstractIndexCreationTask<Merchant>
{
      public class Result
      {
          public int MerchantId { get; set; }
          public int CategoryId { get; set; }
      }


      Map = merchants => from merchant in merchants
                         from categoryId in merchant.Header.CategoryIds
                         select new
                         {
                             MerchantId = merchant.Header.Id,
                             CategoryId = categoryId 
                         };

      Index(x => x.CategoryId, FieldIndexing.Yes);
      Store(x => x.MerchantId, FieldStorage.Yes);
}

Запрос:

return await session
            .Query<Merchants_CategoryId.Result, Merchants_CategoryId>()
            .Where(x => x.CategoryId == categoryId)
            .Select(x => x.MerchantId)
            .ToListAsync();
person Embri    schedule 06.07.2017
comment
Это все еще возвращает список из 0 идентификаторов продавца. - person whiteangeleyes; 07.07.2017