У меня есть модель класса, которая по своей природе рекурсивна. Для краткости я опишу это как:
- A Шаблон содержит множество Сокетов объектов
- A Сокет принимает множество Шаблон Объекты
Обычно я получаю графы объектов, которые выглядят так:
Root Template
|--> Sockets
|--> Socket S1
| |--> Templates
| |--> Template T1
| |--> Template T2
| |--> Sockets
| |--> Socket S1.1
|--> Socket S2
|--> Templates
|--> Template T2 <-- it's valid to reuse templates
|--> Template T3
etc
Я хочу вернуть весь граф объектов через службы данных WCF за один раз.
Я добавил пользовательский метод в свой DataService, который строит полный график:
[WebGet]
public IEnumerable<Template> GetFullyExpandedTemplate(Guid templateId)
{
var result = _templateRepo.GetFullyExpandedTemplate(a => a.Id == templateId);
return new List<Template>() { result };
}
Результат определенно полностью заполнен (проверено. Но если я перейду к следующему:
http://localhost/MySite/MyDataService.svc/GetFullyExpandedAggregate?id=guid'353934DD-916E-43EC-9CAE-EAB8FA894EBA'
Я вижу только объект Root Template - он не возвращает весь график .
Какие-нибудь идеи о самом чистом способе сделать это?