【发布时间】:2018-06-27 22:21:46
【问题描述】:
我正在调用包装 EF 核心的存储库,搞乱了 contoso 示例
public async void PopulateFacultySL( object selectedFaculty )
{
var data = await GetUnitOfWork().Faculties.GetAllAsync();
FacultySL = new SelectList( data, "Id", "Name", selectedFaculty );
}
刷新页面时,有时会填充下拉列表,有时不会。我在技术方面迟到了(异步和等待)并尝试学习,我知道它可能在某个地方很愚蠢,并希望有经验的眼睛能看到问题所在。
protected DbSet<TEntity> TypedContext => Context.Set<TEntity>();
public virtual Task<List<TEntity>> GetAllAsync()
{
return ReturnAndFilterByInstitutionAsync( TypedContext.AsQueryable() );
}
public Task<List<TEntity>> ReturnAndFilterByInstitutionAsync( IQueryable<TEntity> query )
{
return query.Where( q => q.InstitutionId == InstitutionId ).ToListAsync();
}
如果您需要查看任何其他课程信息,请告诉我
编辑: 这是从页面原来的调用方法
public IActionResult OnGet()
{
PopulateFacultySL(null);
return Page();
}
然后必须更改为:
public async Task<IActionResult> OnGet()
{
FacultySL = await GetFacultySL( null );
return Page();
}
使其接受 await 关键字和以下建议中修改后的 GetFacultySL
【问题讨论】:
标签: c# asynchronous asp.net-core razor-pages