我使用asp.net web api和odata对我的数据库进行分页,问题是我没有向客户端返回与数据库中相同的数据表示:
//EF 6 context
public class Context : DbContext
{
IDbSet<DbData> DbData {get;set;}
}
Context _ctx = ...
[EnableQuery(PageSize = 100)]
public IQueryable<Data> Get()
{
return _ctx.DbData.Select(d => new Data{...}).AsQueryable();
}
虽然odata查询工作正常(对客户端),但它们都是在内存中创建的,这意味着从数据库中提取所有DbData
记录,然后才执行odata查询。
有没有办法使用数据转换,并且仍然有dbata级别的odata查询?
注意:现在我只想使用odata进行分页。
注意2:我所做的查询是api / Controller?$ top = 100&amp; $ skip = 100