我正在使用下面的代码更新第二个表(Info2)与从第一个表中使用的标识(info2.Id = info.Id;) 。当执行第二次保存(info2.Save())时,出现错误:“已经有一个与此命令关联的打开DataReader,必须先关闭它”。 任何人都可以看到我可能做错了什么。SubSonic事务 - 插入第二个表与第一个表中的返回标识
亚音速版本3.0.0.3和SQL Server 2005
感谢
using (SharedDbConnectionScope sharedConnectionScope = new SharedDbConnectionScope())
{
using (TransactionScope ts = new TransactionScope())
{
Info info = new Info();
info.Desc = "Some information";
info.Save();
Info2 info2 = new Info2();
info2.Id = info.Id;
info2.Desc = "More information";
info2.Save();
ts.Complete();
}
}
我认为这个错误将永远跟随亚音速用户。前段时间在文档中是错误的。为了记住正确的顺序,我总是记得Connection需要知道事务,因此事务首先进行。通过取消TransactionScope行中的括号。使用嵌套使用子句使其更具可读性。 – 2010-09-01 20:54:09