Bonjour,
Mon DataContext est unique (singleton).
Dans mon projet d'application Web, j'ai une page Web d'inscription. Un Collaborateur est identifié dans le SQL Server par son matricule, un integer à 6 digits : Primary Key, int, Not Null, pas d'Identity (forcément).
Quand l'utilisateur valide la page, la classe controleur est appelée avec en paramètre les valeurs des controles de la page Web.
Une méthode de clase a la charge de vérifier que ce matricule n'existe pas déjàdans la Base :
Si la mtéthode retourne Nothing, je crée un nouveau collaborateur, met à jour ses propriétés, Ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 dc = CtrlMain.dc Dim monCollaborateur = (From c In dc.Collaborateur _ Where c.matricule = leMatricule _ Select c).SingleOrDefault() return monCollaborateur
Je vérifié avec SQL Server Management Studio dans la Base, avec un "SELECT ... WHERE ID =..." : 0 records founds, Ok.
Le dc.InsertOnSubmit() fonctionne corerectement.
Mais, presque systématiquement 1 fois sur 2 tests, la méthode d'insertion dc.SubmitChanges() retoune une System.Data.Linq.DuplicateKeyException
Si l'enregistrement n'est pas dans la Base (0 records found), il pourrait se trouver en mémoire... mais je ne l'ai pas créé... ???!!
Une idée ?
D'avance merci,
JC
Partager