问题描述
我遇到了一个有趣的案例。我的应用程序中有工作人员服务和 Web 服务。工作实体状态(源代码中的枚举和数据库中的整数)在工作服务中(在后台)发生变化。 Web 服务中有一个端点可以返回一些信息,包括作业状态。我分配了断点,发现状态与PgAdmin中的状态不同。我以为原因在Dapper。但是我尝试了简单的 DataReader 并且行为是一样的。总之,PgAdmin 和运行时(C#、.NET Core)中的只读查询结果同时不同。我真的在这里挣扎。我在 Postgresql 中阅读了 MVCC。也许是因为它。但我不确定。
要点很简单:
1 - 通过使用 Dapper 更新 sql 查询,在具有 ReadCommited 隔离级别的 TransactionScope 中更改状态 2 - 通过 Dapper / DataReader(不管)通过简单的选择查询(不在 TransactionScope 中)读取状态 3 - 通过简单的选择查询在 PgAdmin 中获得状态
总结:第 2 步状态不等于第 3 步状态
有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)