Web API OData:$select不起作用。

4

我尝试让这个工作起来。查询返回所有行,即使我只指定一个 (?$select=title)。在webapiconfig上,我有:

var queryAttribute = new QueryableAttribute()
            {
                AllowedQueryOptions = AllowedQueryOptions.All
            };
            config.EnableQuerySupport(queryAttribute);

控制器的样子如下:

public override IQueryable<_person_TITLE> Get()
        {
            return db.personTitle.AsQueryable();
        }
        protected override _person_TITLE GetEntityByKey(int key)
        {
            return db.personTitle.FirstOrDefault(p => p.person_TITLE_ID == key);
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }

编辑: 经过进一步的研究,我发现$select从未被官方实现过。这就是为什么默认情况下在AllowedQueryOptions中没有开启它的原因。

那么,这意味着什么呢?拥有这个选项非常关键。没有这个选项,将odata web api投入生产将是愚蠢的。编写自己的处理程序会抵消使用web api的初衷。

1个回答

4
我们正在进行相关工作。$select和$expand的支持很快将出现在夜间构建中。

1
$select和$expand现在可在夜间版本中使用。请参考这篇文章,了解如何使用我们的夜间版本构建:http://blogs.msdn.com/b/henrikn/archive/2012/04/29/using-nightly-nuget-packages-with-asp-net-web-stack.aspx。 - RaghuRam Nadiminti
4
你们计划何时通过NuGet发布稳定版本? - StewartArmbrecht

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接