2010-09-18 4 views
1

J'ai lu récemment un peu de code Azure et je me demande pourquoi les exemples que je vois sur Internet ne semblent pas tirer parti de plusieurs opérations par aller-retour. Y at-il une raison que les gens ne codent pas leur DataSource comme ceci:Azure Table Pattern pour la suppression ou la mise à jour de plusieurs objets

ForumDataSource.cs

public void DeleteThread(params ForumThread[] itemToDelete) 
    { 
     foreach (var item in itemToDelete) 
     { 
      _ServiceContext.AttachTo(ForumDataServiceContext.ForumThreadTableName, item, "*"); 
      _ServiceContext.DeleteObject(item); 
     } 
     _ServiceContext.SaveChanges(); 
    } 

De cette façon, plusieurs suppressions peuvent se produire et le modèle de programmation est assez propre.

Répondre

3

Veillez à utiliser SaveChangesOptions.Batch lors de l'appel de SaveChanges ... sinon toutes les opérations seront effectuées en tant que transactions individuelles. Avec cette modification, le code ci-dessus devrait être correct, en supposant que tous les éléments que vous supprimez font partie de la même partition de la même table, et qu'ils ne sont pas plus d'une centaine (c'est une limite des tables Windows Azure).

Questions connexes