试图让它发挥作用。即使我只指定了一个(?$ 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的目的。
答案 0 :(得分:4)
我们正在努力解决这个问题。 $ select和$ expand的支持很快就会出现在夜间版本中。