【发布时间】:2015-07-09 07:19:15
【问题描述】:
我有一个使用 Entity Framework 和 Odata 的 ASP.NET Web API 应用程序。
我想在使用 GET 时修改查询结果...目前,在控制器中,您实际上只需将 EntityFramework 数据实体传递回 Odata 处理程序...
[EnableQuery]
public IQueryable<myEntity> GetLineItem()
{
return db.myEntities;
}
只需返回一个子集,就可以轻松地将 Odata 传递的任何查询添加到其中
return db.myEntity.Where(myEntity => myEntity.Name == "Bob")
Odata 会将 $filter 查询字符串参数中的任何内容添加到此处传递的表达式中,您将获得这些结果的子集。
但是,一旦查询执行并将 SQL 结果解析为实体对象,我想对结果进行迭代。
我已经尝试创建一个实现 IQueryable 接口并挂钩到 GetEnumerator 方法的包装器,对于 IProvider 和挂钩到执行方法也是如此。 Odata 似乎没有使用其中任何一种。
有没有办法做到这一点?
【问题讨论】:
标签: asp.net-web-api odata