Я не могу заставить groupby работать с top и skip, что должно быть самым простым. Я получаю данные с помощью OData и могу получить вывод, используя запрос ниже
https: // локальный: 6523 / api / OData / AssetUsage /? $ Apply = groupby ((assetId, BIAsset / name), aggregate (взаимодействия с суммой как totalInteractions, uniqueInteractions с суммой как totalUniqueInteractions)) & $ orderBy = totalInteractions asc
Однако, когда я пытаюсь применить skip или top к сгенерированному выше выводу, я получаю сообщение об ошибке, указанное ниже.
https: // локальный: 6523 / api / OData / AssetUsage /? $ Apply = groupby ((assetId, BIAsset / name), aggregate (взаимодействия с суммой как totalInteractions, uniqueInteractions с суммой как totalUniqueInteractions)) & $ orderBy = totalInteractions asc & $ top = 1
Ошибка -
message ":" Запрос, указанный в URI, недействителен. Не удалось найти свойство с именем 'BIAsset' в типе 'Portal.Models.Entities.AssetUsage'. ",
"innererror":
- "message": "Не удалось найти свойство с именем 'Asset' в типе 'Portal.Models.Entities.AssetUsage'.",
- «тип»: «Microsoft.OData.ODataException»,
Структура класса сущности
public class AssetUsage
{
public int Id { get; set; }
[ForeignKey("BIAsset")]
public int? AssetId { get; set; }
public int YearMonthId { get; set; }
public int Interactions { get; set; }
public int UniqueInteractions { get; set; }
public DateTimeOffset Recency { get; set; }
public virtual BIAsset BIAsset { get; set; }
}
Я использовал EnableLowerCamelCase (), поэтому мне нужно использовать точный регистр при написании запроса. Однако в будущем обновлении эта проблема будет решена. см. ниже URL-адрес для дальнейших обновлений. https://github.com/OData/WebApi/issues/1659