petapoco - 无效操作。使用 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 以支持异步?
谢谢,纳伦德拉
解决方案
我经常看到这种情况,很可能您将db
实例泄漏到多个线程。
测试和确认的步骤。隔离 web/api 并发出单个请求。如果单个请求有效,则问题如所述。
推荐阅读
- apache-spark - Spark 中的 java.io.NotSerializableException
- node.js - 向 slackbot 发送私人消息,而工作区的其他用户不会看到它
- reactjs - 使用来自 CMS 的语法高亮呈现代码
- php - 如果输出中的值相同,则将它们合并在一起
- c++ - 将 --whole-archive 链接器选项与 CMake 和具有其他库依赖项的库一起使用
- spring-boot - 从 CassandraOperations 检索 DataStax 会话
- typescript - 打字稿条件类型:推理有效,但编译器拒绝实现
- .htaccess - .htacess 将目录重定向到一个域,将子目录重定向到不同域
- c# - 使用 Linq 的 Where 子句 - 搜索对象列表
- c# - 使用实体框架更新行的问题