Asp.net web api 如何返回与在OData中运行查询的对象不同的对象?

Asp.net web api 如何返回与在OData中运行查询的对象不同的对象?,asp.net-web-api,odata,Asp.net Web Api,Odata,我试图从控制器的Get方法返回一个对象,该对象与运行查询的类属于不同的类 根据答案,这就是我正在做的: public PageResult<OutputPoco> Get(ODataQueryOptions<InputPoco> odataQueryOptions) 公共页面结果获取(ODataQueryOptions ODataQueryOptions) 当尝试运行此操作时,我发现406不可接受。我错过了什么?这种方法是否有一个可行的例子 更新: 我正在使用ODat

我试图从控制器的
Get
方法返回一个对象,该对象与运行查询的类属于不同的类

根据答案,这就是我正在做的:

public PageResult<OutputPoco> Get(ODataQueryOptions<InputPoco> odataQueryOptions)
公共页面结果获取(ODataQueryOptions ODataQueryOptions)
当尝试运行此操作时,我发现
406不可接受
。我错过了什么?这种方法是否有一个可行的例子

更新: 我正在使用
ODataController

OutputPoco
包含对
InputPoco
的引用。我需要排序和筛选才能工作(在
InputPoco
)。

您使用的是ODataController吗?只有在构建OData服务时,才必须使用ODataController。在这种情况下,您必须构建一个EDM模型,然后使用OData路由公开OData服务


如果您只想构建一个只支持OData查询语义(而不是其他OData之类的url约定和格式)的普通web API,那么应该使用ApicController。

我使用的是ODataController。如果我使用modelBuilder.EntitySet映射路线,我会得到406。如果我使用modelBuilder.Entity映射路线,代码会抱怨导航属性(因为OutputPoco包含对InputPoco的引用)。我试过的任何组合都有问题。是否有一个使用这种方法的工作示例,使用排序、过滤等?我们有一堆样本。这两个可能会让你最感兴趣-,。看看样品。我想他们没有我想要的。基本上,我需要两个类:A和B。B有一个A的集合。需要对A进行查询和排序,然后返回B,其中包含完全展开的A的列表。