首页 > 解决方案 > 无效操作。使用 Petapoco FetchAsync 时连接已关闭错误

问题描述

我在我的 MVC 项目中使用 petapoco.compiled v6.0.441。这适用于所有同步操作。但是当我尝试使用 FetchAsync<> 时,它会抛出错误“无效操作。连接已关闭'。

//controller
public async Task<ActionResult> Index()
{
     IEnumerable<UserEntity> users= await userService.GetAllAsync();
     return View(users);
}

//user service
public Task<List<UserEntity>> GetAllAsync()
{
    return userrepository.GetAllAsync();
}

//user repo - trial 1
public Task<List<UserEntity>> GetAllAsync()
{
    var res = db.FetchAsync<UserEntity>("select query");

    return res;
}

also tried
//user repo - trial 2
public async Task<List<UserEntity>> GetAllAsync()
{
    var res = await db.FetchAsync<UserEntity>("select query");

    return res;
}

不确定上述实现是否正确或我遗漏了什么,我是否必须配置 petapoco 以支持异步?

谢谢,纳伦德拉

标签: petapoco

解决方案


我经常看到这种情况,很可能您将db实例泄漏到多个线程。

测试和确认的步骤。隔离 web/api 并发出单个请求。如果单个请求有效,则问题如所述。


推荐阅读