小编Sim*_*mon的帖子

异步计时问题

我正在调用一个包装EF核心的存储库,弄乱了contoso示例

public async void PopulateFacultySL( object selectedFaculty )
{
    var data = await GetUnitOfWork().Faculties.GetAllAsync();
    FacultySL = new SelectList( data, "Id", "Name", selectedFaculty );
}
Run Code Online (Sandbox Code Playgroud)

刷新页面时,有时会填充下拉列表,有时则不会.我迟到了技术(异步和等待)并试图学习,我知道它可能是某种愚蠢的东西,并希望有经验的人可以看到问题是什么.

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();
}
Run Code Online (Sandbox Code Playgroud)

如果您需要查看任何其他课程信息,请告诉我

编辑:这是页面中的原始调用方法

public IActionResult OnGet()
{
    PopulateFacultySL(null);
    return Page();
}
Run Code Online (Sandbox Code Playgroud)

然后必须改为:

public async Task<IActionResult> OnGet()
{
    FacultySL = await GetFacultySL( null );
    return Page(); …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous asp.net-core razor-pages

2
推荐指数
1
解决办法
141
查看次数

标签 统计

asp.net-core ×1

asynchronous ×1

c# ×1

razor-pages ×1