在上一个完成如何解决此问题之前,在此上下文上启动了第二个操作

A second operation was started on this context before a previous completed how to fix that

提问人:masoud rahimi 提问时间:2/13/2023 最后编辑:il_raffamasoud rahimi 更新时间:2/18/2023 访问量:107

问:

InvalidOperationException:在上一个操作完成之前,在此上下文上启动了第二个操作。这通常是由不同线程同时使用相同的 DbContext 实例引起的。有关如何避免 DbContext 的线程问题的详细信息,请参阅 https://go.microsoft.com/fwlink/?linkid=2097913

public async Task<List<SiteBanner>> GetSiteAllBanners()
    {
      return  await _siteBannerRepository.GetQuery().ToListAsync();
         
    }

public IQueryable<TEntity> GetQuery()
    {
        return _DbSet.AsQueryable();
    }

services.AddScoped<ISiteService, SiteService>();`
[HttpGet("show-banners")]
        public async Task<IActionResult> ShowBanners()
        {
            ViewBag.banners = await _siteService.GetSiteAllBanners();
            return View();
        }

在此处输入图像描述

asp.net asp.net-core asp.net-mvc-3 线程安全 操作

评论

0赞 Stephen Cleary 2/13/2023
确保您的数据库上下文未注册为单例。

答: 暂无答案