我正在使用 MVC 4 和 WebApi 1 开发一个项目,它运行良好,在我将其升级到 MVC 5 和 WebApi 2 后,一切正常,除了这种情况:当我在查询中使用 $select 语句并指定一些属性时, options.ApplyTo() 方法返回意外结果:
System.Web.Http.OData.Query.TruncatedCollection`1[System.Web.Http.OData.Query.Expressions.SelectExpandBinder+SelectSome`1[MvcApp.Domain.Entities.Users]]
为什么会发生这种变化,以及如何将其转换为 IQueryable<Users> 作为 WebApi 1?我的代码在这里:
public PageResult<Users> Get(ODataQueryOptions options)
{
ODataQuerySettings settings = new ODataQuerySettings() { PageSize = 10 };
IQueryable results = options.ApplyTo(Repository.Data, settings);
var items = results as IEnumarable<Users>;
// items will be null if you $select some properties!
return new PageResult<Users>(items, null, Request.GetInlineCount().Value);
}
请帮忙。