Ссылки на идентификаторы содержимого в пакетных запросах ASP.NET OData

У меня есть служба OData ASP.NET WebApi, и я пытаюсь использовать ее из JavaScript с помощью JayData. Моя модель выглядит следующим образом:

class Parent {
    ICollection<Child> Children;
}
class Child {
    ICollection<Parent> Parents;
}

Я пытаюсь добавить новый родительский объект с новым дочерним объектом, используя контекст JayData, что-то вроде:

var child = new db.Children.Child({Parents: []});
var parent = new db.Parents.Parent({Children: [child]});
db.Parents.add(parent);
db.saveChanges();

В результате JayData отправляет пакетный запрос в службу OData, содержащую 2 почтовых запроса: один для дочернего и другой для родительского, где дочернему элементу присваивается Content-ID = 1, а родительский объект сериализуется в JSON как:

{'Children': [{'__metadata': {'uri': '$1'}}]}

На стороне сервера выполняется метод CreateEntity как Parent, так и Child EntitySetControllers, но аргумент Parent имеет пустую коллекцию Children, то есть он игнорирует ссылку Content-ID на новую сущность Child из запроса.

Есть ли удобный способ заставить его работать в ASP.NET OData, или мне нужно проанализировать JSON родительского элемента из запроса и проверить, существуют ли такие ссылки вручную?

0 ответов

Другие вопросы по тегам