2016-10-14 6 views
0

J'ai une classe de service pour contenir les appels au service RIA. J'ai la méthode suivante pour enregistrer plusieurs enregistrements, sur la première étape je devrais obtenir le fameux MaxId de la table et l'incrémenter dans le foreach pour ajouter les objets.Insérer plusieurs enregistrements Services RIA

public bool SaveRecs(ObservableCollection<Acc> accList) 
    { 
     int i = 0; 
     invokeOperation = Context.GetMaxAcc(); 
     invokeOperation.Completed += 
     (s, a) => 
     { 
      foreach (Acc item in accList) 
      { 
       //if (CheckAcc(item.name, item.id)) continue; 
       item.id = invokeOperation.Value + i; 
       Context.Accs.Add(item); 
       i++; 
      } 
     }; 
     return Commit(); 
    } 

Le problème est que lorsque la méthode est appelée première fois, il ne fait rien et la deuxième fois que cela fonctionne, l'étrange est qu'il peut donner une erreur de double. lorsque je débogue le code l'ID était ZERO

Est-ce la bonne façon de le faire?

grâce

Répondre

0

Mon erreur, je déplacer le commettras après la foreach.