我在ASP.NET/SQL Server 2005中使用SubSonic工作时发生多重删除事务时遇到了一些问题。它似乎总是会在数据库中进行更改,即使没有调用transactionscope对象的完整方法?无法使用SubSonic处理事务
我一直在阅读有关这方面的文章,并尝试过各种替代方案(切换我使用的语句的顺序),使用DTC,不使用DTC等,但迄今为止没有喜悦。
我打算假设这是我的代码,这是问题,但我无法发现问题 - 任何人都可以提供帮助吗?我使用的是SubSonic 2.2。下面的代码示例:
using (TransactionScope ts = new TransactionScope())
{
using (SharedDbConnectionScope sts = new SharedDbConnectionScope())
{
foreach (RelatedAsset raAsset in relAssets)
{
// grab the asset id:
Guid assetId = new Select(RelatedAssetLink.AssetIdColumn)
.From<RelatedAssetLink>()
.Where(RelatedAssetLink.RelatedAssetIdColumn).IsEqualTo(raAsset.RelatedAssetId).ExecuteScalar<Guid>();
// step 1 - delete the related asset:
new Delete().From<RelatedAsset>().Where(RelatedAsset.RelatedAssetIdColumn).IsEqualTo(raAsset.RelatedAssetId).Execute();
// more deletion steps...
}
// complete the transaction:
ts.Complete();
}
}