2016-08-24 1 views
1

У меня есть сценарий, в котором родитель и ребенок проживают в той же таблице, и их отношения в другой таблицеВерстка O-данных до В (где п может быть любое количество)

таблица Родитель может содержать данные, как этот

Parent Table 
---------------------- 
Id 111 
Name Parent 

, а также, как это

Parent Table 
---------------------- 
Id 112 
Name Child 

таблица отношений содержит эти отношения как этот RELAT таблице 112 также может быть родителем кого-то с идентификатором 113

Вопрос Как мы определяем этот тип отношений в OData OData содержит простой пример саны -> Продукции, где оба являются различными объектами, связанного приказ Id

в моем случае родитель и ребенок оба сидят в одной таблице

---------------- 
ParentId1   ID2 
111     112 
112     113 

Так как мы можем достичь этого вложенного отношения с помощью O-данных?

ответ

0

OData может справиться с этим штраф, если у вас есть общее Person объект можно добавить две навигационные свойства, что один называется Parent, который идет в один Person и один называется Children, который идет к коллекции Person с. Это приведет к возможности делать OData запросы как это:

http://localhost/api/People('ParentId')/Children 

Чтобы перейти от родителей к своим детям, и это:

http://localhost/api/People('ChildId')/Parent 

Чтобы перемещаться от ребенка к родителю

+0

Спасибо для вашего ответа. Odata может справиться с этим, но только на одном уровне. В моем случае уровень может быть очень глубоким, поэтому один Odata вызывает http: // localhost/api/People ('ParentId')/Children будет приводить только к 1-му уровню детей, но не к целому генеалогическому дереву. – user1670018

+0

Используя вложенные расширения, вы можете сделать определенное количество навигаций, но если вы не знаете, сколько навигаций есть, вы не сможете сделать это так – TomDoesCode