尝试让它发挥作用。即使我只指定一行,查询也会返回所有行 (
?$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 的目的。
我们现在正在努力。对 $select 和 $expand 的支持应该很快就会出现在夜间构建中。