小编Bla*_*art的帖子

查询后修改odata结果

我有一个使用Entity Framework和Odata的ASP.NET Web API应用程序.

我想在使用GET时修改查询的结果...当前,在控制器中,您实际上只是将EntityFramework数据实体传递回Odata处理程序...

[EnableQuery]
public IQueryable<myEntity> GetLineItem()
{
    return db.myEntities;
}
Run Code Online (Sandbox Code Playgroud)

通过简单地返回一个子集,可以很容易地将Odata传递给它的任何查询前置

return db.myEntity.Where(myEntity => myEntity.Name == "Bob")
Run Code Online (Sandbox Code Playgroud)

Odata会将$ filter querystring参数中的任何内容添加到此处传递的表达式中,并获得这些结果的子集.

但是,我想在查询执行后迭代结果,并将SQL结果解析为实体对象.

我已经尝试创建一个包装器来实现IQueryable接口并挂钩到GetEnumerator方法,并为IProvider提供相同的方法并挂钩到execute方法.Odata似乎没有使用其中任何一个.

有没有办法做到这一点?

odata asp.net-web-api

7
推荐指数
1
解决办法
2350
查看次数

标签 统计

asp.net-web-api ×1

odata ×1