2009-07-23 7 views
3

Je rencontre un problème lorsque j'essaie de soumettre deux insertions à la fois. La table a une clé primaire d'incrémentation automatique. Les objets de commentaire mis en place n'ont pas de valeur d'ID définie pour que la base de données puisse l'affecter. Mon code fonctionne pour les insertions simples si je les soumets tout de suite mais si j'essaye de faire plusieurs commandes InsertOnSubmit alors il semble ne rien faire, et ne renvoie aucune erreur ou exception même si mon code se trouve dans un bloc try and catch. Est-ce que quelqu'un d'autre a eu ce problème ou savez-vous dans quelle direction je devrais regarder?Linq to SQL Le contexte de données ne s'engage pas si plusieurs insertions sont appelées sur la table avec un incrément automatique

Exemple 1 (Cela n'engage pas à la base de données)

//myComment is initialised with data 
dc.tblDailyComments.InsertOnSubmit(myComment); 


//myComment2 is initialised with different data 
dc.tblDailyComments.InsertOnSubmit(myComment2); 


//when this is called it does not commit to the database 
dc.SubmitChanges(); 

Exemple 2 (Ceci fonctionne très bien)

//myComment is initialised with data 
dc.tblDailyComments.InsertOnSubmit(myComment); 

//commits to the database 
dc.SubmitChanges(); 

//myComment2 is initialised with different data 
dc.tblDailyComments.InsertOnSubmit(myComment2); 


//commits to the database 
dc.SubmitChanges(); 
+0

Quelqu'un a des idées pour cela? Je suis sûr que c'est une solution simple, je ne peux pas sembler voir quelqu'un ayant le même problème. Cheers – Andrew

+0

Je suppose qu'il doit y avoir quelque chose d'autre, parce que cela devrait fonctionner autant que je sache. Malheureusement, mon linq-to-sql-fu est faible, et mes compétences de débogage psychique échouent dans votre cas. –

+0

Il ne fait que ne pas faire les insertions si la table est complètement vide, si je mets manuellement la première entrée dans la table il semble fonctionner qui ne semble pas avoir de sens. – Andrew

Répondre

0

Ne serait-il pas préférable d'ajouter tous vos commentaires à une collection et appelez la méthode InsertAllOnSubmit() à la place? Est-ce que ça marche?