J'ai un peu de mal à faire fonctionner une transaction multi-suppressions en utilisant SubSonic dans un serveur ASP.NET/SQL 2005. Il semble que les modifications soient toujours effectuées dans la base de données même sans appelez la méthode complète sur l'objet transactionscope? J'ai lu les articles à ce sujet et essayé diverses alternatives (en changeant l'ordre de mes instructions d'utilisation), en utilisant DTC, en n'utilisant pas DTC etc mais pas de joie jusqu'à maintenant.Problème de transaction avec SubSonic
Je vais supposer que c'est mon code qui est le problème, mais je ne peux pas identifier le problème - quelqu'un peut-il m'aider? J'utilise SubSonic 2.2. Exemple de code ci-dessous:
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();
}
}