2016-05-10 6 views
2

Поддерживает ли JayData 1.5.1 полиморфные коллекции, которые могут содержать элементы с иерархией наследования?Jaydata - поддержка полиморфных коллекций в OData v4

У меня есть служба OData v4, которая содержит полиморфную коллекцию. Служба реализована с использованием asp.net WebApi 2.2 и OData 5.8. Коллекция содержит соответствующие метаданные $ odata.type, которые указывают производный тип, и сама служба работает как ожидалось.

В моей модели данных я объявлял базовый тип сущности и производные типы, и коллекция объявляется в контексте данных как коллекция с типом elementType, установленным для базового типа сущности.

При запросе этой коллекции, похоже, что JayData создает только объект базового типа для каждого члена коллекции, игнорируя метаданные $ odata.type. Есть ли способ дать указание JayData создать соответствующие производные типы сущностей для полиморфной коллекции?

Также, связанный с вышесказанным, когда я запрашиваю коллекцию, мне нужно развернуть дочернюю коллекцию элементов, относящихся только к одному из производных типов, а не к базовому типу. В OData это делается с помощью $ развернуть похожее на следующее:

$ развернуть = My.Model.DerivedType/ChildCollection

Есть ли способ, чтобы добавить это к JayData «включают» часть запроса?

Вот модель данных образец, который несколько представитель:

types["My.Model.BaseType"] = $data.Entity.extend("My.Model.BaseType", { 
... 
}); 
    types["My.Model.Child"] = $data.Entity.extend("My.Model.Child", { 
... 
}); 
    types["My.Model.DerivedType"] = types["My.Model.BaseType"].extend("My.Model.DerivedType", { 
... 
     ChildCollection: { 
      "type": "Array", 
      "elementType": "My.Model.Child", 
      "inverseProperty": "$$unbound" 
     } 
}); 

exports.type = types["MyData.Container"] = $data.EntityContext.extend("MyData.Container", { 

     PolymorphicCollection: { 
      "type": "$data.EntitySet", 
      "elementType": "My.Model.BaseType" 
     }, 
}); 

Спасибо,

Джефф.

ответ

1

Отказ от ответственности: Я работаю с командой JayData

наследственные классы не могли попасть в 1,5 раза. Модель метаданных и парсер выражений поддерживают его, но построитель запросов не знает классов и подклассов. Поскольку наследование является основанием для Microsoft Graph API, мы решили посвятить ему следующую версию (1.6) - и не задерживать выпуск для других функций V4.