我一直在用这个把头撞在墙上,也许有人可以解释一下可能导致这种行为的原因。
我有一个 asp.net (2.0) 应用程序,在某种程度上:
using(TransactionScope 范围 = new TransactionScope(...)) {
//...做一些查询
插入订单();
插入订单详细信息();
//执行更多逻辑和查询
ReadOrder();//读取新插入的订单 OK
读取订单详细信息();//这是问题,我无法读取新插入的详细信息
//进行更多插入....
范围.Complete();
}
更多联系信息:
- MySql5.0.27社区
- MySql/net 连接器 5.2.3
- Order 和 OrderDetails 是具有 FK 约束的 InnoDB
- 已启用轮询(尽管我已尝试关闭轮询并具有相同的行为)
- 我尝试在事务中设置不同的隔离级别,以防出现相同的行为,但这是相同的连接,所以应该不重要,对吗?
有人对可能导致此问题的原因有任何想法吗?
任何帮助将不胜感激
海梅
最佳答案
我的猜测是,您调用的不同函数正在获取不同的连接,因此它们看不到事务中未提交的更改。
检查这一点的一种方法是获取连接 ID 并进行比较。
关于asp.net - 无法从 MySql/.net 连接器中的同一 session 读取未提交的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/369975/