在我的OData
控制器中,我有这样的方法:
// GET odata/Fixtures(5)
public SingleResult<Fixture> GetFixture([FromODataUri] int key)
{
return SingleResult.Create(db.Fixtures.Where(fixture => fixture.FixtureId == key));
}
// GET odata/Fixtures(5)/City
[Queryable]
public SingleResult<City> GetCity([FromODataUri] int key)
{
return SingleResult.Create(db.Fixtures.Where(m => m.FixtureId == key).Select(m => m.City));
}
// GET odata/Fixtures(5)/Team
[Queryable]
public SingleResult<Team> GetTeam([FromODataUri] int key)
{
return SingleResult.Create(db.Fixtures.Where(m => m.FixtureId == key).Select(m => m.Team));
}
如何从Fixtures系列中获取AngularJs
的城市和团队?这不能得到它们:
<tbody>
<tr ng-repeat="fixture in fixtures | orderBy:'FixtureId'" id="fixture_{{fixture.id}}">
<td>{{fixture.FixtureId}}</td>
<td>{{fixture.City.CityName}}</td>
<td>{{fixture.Team.TeamName}}</td>
...
</tr>
</tbody>
我是否需要在GetCity
中引用GetTeam
和GetFixture
来返回看起来像这样的DTO:
class FixtureDTO
{
public int FixtureId { get; set; }
public string CityName { get; set; }
public string TeamName { get; set; }
}
如果有的话,有人会举例说明我会这样做吗?还是我完全以错误的方式接近这个?
非常感谢任何建议!
答案 0 :(得分:0)
我使用$ expand odata关键字在服务器响应中包含导航属性以查询Fixtures。 这样做,您的客户端代码必须正常工作。