【发布时间】:2016-08-04 09:16:24
【问题描述】:
我有一个相当标准的 WebApi 2.0 OData 4.0 网络服务,使用 EF5 和代码优先方法。该服务有效,我可以通过外键查询实体和相关实体。
该服务是只读的,控制器只实现了 Get 和 Get-by-key。
public class MyTableController : MyDbController
{
[EnableQuery]
public IQueryable<MyTable> Get()
{
return db.MyTable;
}
[EnableQuery]
public SingleResult<MyTable> Get([FromODataUri] int key)
{
IQueryable<MyTable> result = db.MyTable.Where(p => p.pk == key);
return SingleResult.Create(result);
}
}
在两个 Get() 实现中,我都希望能够访问 OData 中使用的表列表和生成的 SQL 查询。 MyTable 显然是其中之一,但我如何获得其他的(其中包括(嵌套)$expand 中使用的那些)?我可以尝试自己解析 URL,但这似乎不是一个很好的方法。
【问题讨论】:
标签: c# asp.net-web-api odata