我正在尝试对我的一个OData查询执行嵌套扩展(三层),但无法获取扩展对象。
这是我的类:
public class Project
{
public int ProjectId { get; set; }
public Manager Manager { get; set; }
public IEnumerable<ProjectResource> ProjectResources { get; set; }
}
public class ProjectResource
{
public int ProjectResourceId { get; set; }
public Employee Employee { get; set; }
public Project Project { get; set; }
public IEnumerable<Forecast> Forecasts { get; set; }
}
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public Manager Manager { get; set; }
public IEnumerable<ProjectResource> ProjectResources { get; set; }
}
public class Manager
{
public int ManagerId { get; set; }
public string Name { get; set; }
}
public class Forecast
{
public int ForecastId { get; set; }
public ProjectResource ProjectResource { get; set; }
}
以下 OData 查询有效,将返回一个包含
Projects
和它们的Managers
列表的结果:/Projects?$expand=Manager
我尝试了这个查询,它有效:
/Forecasts?$expand=ProjectResource($expand=Project)
添加另一个层级的展开:
/Forecasts?$expand=ProjectResource($expand=Project($expand=Manager))
我收到一个错误,说只能展开两层。因此,我将以下内容添加到我的查询并重试:
[EnableQuery(MaxExpansionDepth=0)]
我不再遇到错误,但每个项目的
Manager
未被包含。你有什么想法我缺少了什么?