C# WebApi OData inlinecount不工作

C# WebApi OData inlinecount不工作,c#,asp.net-web-api,odata,C#,Asp.net Web Api,Odata,当我在uri中传递OData时,我试图让OData返回数据库中的实体数。我在堆栈溢出中读到,我应该返回IQueryable,而不是IHttpActionResult,但是这并没有解决问题。我也试着去看asp.net网站上的教程,但也没有结果 [EnableQuery( PageSize = BuildingConstants.BuildingsPerPage, MaxTop = BuildingConstants.MaxBuildingsPerPage,

当我在uri中传递OData时,我试图让OData返回数据库中的实体数。我在堆栈溢出中读到,我应该返回
IQueryable
,而不是
IHttpActionResult
,但是这并没有解决问题。我也试着去看asp.net网站上的教程,但也没有结果

[EnableQuery(
        PageSize = BuildingConstants.BuildingsPerPage,
        MaxTop = BuildingConstants.MaxBuildingsPerPage,
        AllowedArithmeticOperators = AllowedArithmeticOperators.None,
        AllowedLogicalOperators = AllowedLogicalOperators.None,
        AllowedFunctions = AllowedFunctions.SubstringOf,
        AllowedQueryOptions = AllowedQueryOptions.Filter | AllowedQueryOptions.OrderBy | AllowedQueryOptions.Top | AllowedQueryOptions.Skip | AllowedQueryOptions.InlineCount)]
    [ResponseType(typeof(IEnumerable<ListedBuildingResponseModel>))]
    public IQueryable<ListedBuildingResponseModel> Get()
    {
        var buildings = this.buildings
            .GetBuildings()
            .ProjectTo<ListedBuildingResponseModel>();

        return buildings;
    }
[EnableQuery(
PageSize=BuildingConstants.BuildingPerPage,
MaxTop=BuildingConstants.MaxBuildingsPerPage,
AllowedArtimeticOperators=AllowedArtimeticOperators.None,
AllowedLogicalOperators=AllowedLogicalOperators.None,
AllowedFunctions=AllowedFunctions.SubstringOf,
AllowedQueryOptions=AllowedQueryOptions.Filter | AllowedQueryOptions.OrderBy | AllowedQueryOptions.Top | AllowedQueryOptions.Skip | AllowedQueryOptions.InlineCount)]
[责任类型(类型(IEnumerable))]
公共IQueryable Get()
{
var建筑物=此。建筑物
.1.1.1建筑物()
.ProjectTo();
归还建筑物;
}

这就是我写的关于奥达塔的所有内容。控制器继承的是
ApiController
,而不是
ODataController
。在
Register
方法中,我没有添加任何OData路由或模型生成器
$top
$skip
$orderby
和其他一切都正常工作,但
$inlinecount=allpages
。关于如何解决这个问题有什么建议吗?

我通过添加以下代码设法使
count=true
起作用:

 public static void Register(HttpConfiguration config)
    {
        config.MapODataServiceRoute("odata", "odata", model: GetEdmModel());
    }

    private static IEdmModel GetEdmModel()
    {
        var builder = new ODataConventionModelBuilder();
        builder.EntitySet<ListedBuildingResponseModel>("Buildings");

        builder.EnableLowerCamelCase();
        var edmModel = builder.GetEdmModel();
        return edmModel;
    }

以某种方式将
BuildingController
绑定到
ListedBuildingResponseModel

是否ODataV4$count=true而不是$inlinecount?”消息:“不支持查询参数“$count”。是否将其添加到允许列表中?“AllowedQueryOptions.Count”。@MarvinSmit没有这样的查询选项“Count”。即使我从属性中删除所有参数并将其保留为空(如[EnableQuery]),我也会收到相同的错误消息。我发现我已经安装了旧的NuGet软件包,因此我删除了旧的,并安装了OData v4软件包。现在,我可以使用count=true,但我仍然无法在响应中获得实体计数。我尝试返回IHttpActionResult和IQueryable,但没有成功。
uilder.EntitySet<ListedBuildingResponseModel>("Buildings");