Могу ли я определить EntityType, но не сделать его доступным в качестве фида? - PullRequest
0 голосов
/ 02 октября 2018

Я использую Odata / Olingo v2.У меня определено несколько типов сущностей, включая Product и CategoryProduct может быть много Categories.

Я бы хотел сделать ТОЛЬКО доступным Products в качестве фида / ресурса. Я думал, что смогу добиться этого, определив Category Тип сущности и ассоциация, но без добавления Categories EntitySet и AssociationSet к EntityContainer.Я также создал NavigationProperty между Product и Category.

Кажется, это действительный EDMX, по крайней мере EdmxProvider.parse() Олинго не возражает.Однако, когда я публикую Product с набором Categories в фиде Products, Олинго выдает исключение из EdmEntityContainerImplProv.getAssociationSet(), потому что ожидает найти AssociationSet для Categories

Есть ли способ сделать это в OData / Olingo v2?

Редактировать: Нельзя сделать Category a ComplexType, потому что мне нужно иметь их коллекцию, и этоневозможно в OData / Olingo v2

1 Ответ

0 голосов
/ 03 октября 2018

Я не знаком с реализациями olingo, поэтому не могу указать вам методы / что угодно.

Но в целом: если вы хотите, чтобы сущность была доступна как набор (будь то /Product('123')/ToCategories или просто /CategorySet), вам необходим соответствующий EntitySet в ваших метаданных и в вашей реализации.

Однако вы можете ограничить вашу реализацию только ответить при использовании через свойство навигации.

В качестве примера: в реализации Abap метод, реализующий категорию get_entityset, имеет информацию о том, что доступ к нему осуществляется через свойство навигации от другого объекта (или даже пути), включая ключи.Здесь вы можете выдать исключение или просто вернуть пустой набор, если решите, что не хотите предлагать прямой доступ к /CategorySet

...