web api odata:$ select not working

时间:2013-04-18 21:54:56

标签: api select web odata asp.net-web-api

试图让它发挥作用。即使我只指定了一个(?$ 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 个答案:

答案 0 :(得分:4)

我们正在努力解决这个问题。 $ select和$ expand的支持很快就会出现在夜间版本中。