试图让这个工作。即使我只指定一个 (?$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 的目的。