【发布时间】:2012-02-21 14:23:20
【问题描述】:
我有一个本质上是递归的类模型。为简洁起见,我将其描述为:
- 一个模板包含许多Socket对象
- 一个 Socket 接受许多 Template 对象
我通常会得到如下所示的对象图:
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 对象 - 它不会带回 整个图表。
关于实现这一点的最干净方法的任何想法?
【问题讨论】:
标签: wcf wcf-data-services odata