这是我与ODATA动作ODATA控制器。
public class MyController : ODataController
{
private readonly Repository_repo;
public MyController(IRepository repo)
{
_repo = repo;
}
[EnableQuery(PageSize = 10, EnsureStableOrdering = false)]
public IActionResult Get()
{
var data = _repo.GetData();
return Ok(data)
}
}
这是我的库法。
public IQueryable<DataModel> GetData() => _db.DbSet.Select(data=> new DataModel
{
// Implement model
}).
现在我明白了,没有1点进行的回购作为异步GetData方法,因为这只是其返回,直到你调用它的枚举没有得到执行可查询。
因此,为了使异步的部分是操作方法。我将如何使这是一个异步await-能打电话? ODATA EnableQuery方法需要一个IQueryable据我所知。
你不需要。操作方法是请求管道只是其中的一部分;它不是异步不被异步排除其他事情的管道。多数民众赞成在处理的OData查询中间件是什么是真正将查询发送到数据库,并极有可能这样做异步(我不熟悉的源代码,并不能肯定地说)。无论如何,你的动作仅需异步如果你真的在做事情异步在里面。否则,不用担心了。