Linq to SQL - Comment trouver la valeur de la colonne IDENTITY après InsertOnSubmit ()
-
03-07-2019 - |
Question
J'utilise LINQ to SQL pour insérer des données simples dans une table SANS procédure stockée
. La table comporte une colonne d'ID de clé primaire, définie comme colonne IDENTITY
dans SQL Server
et dans mon DBML
.
J'appelle d'abord InsertOnSubmit ();
avec les données d'une seule ligne, puis j'appelle SubmitChanges ();
pour valider la ligne dans la base de données. Mais je pense qu’il doit exister un moyen simple de récupérer ensuite la valeur de colonne IDENTITY
de la ligne qui vient d’être insérée. Je ne souhaite pas fournir la valeur de colonne IDENTITY
à la base de données, je souhaite qu'elle en génère une pour moi.
Comment cela est-il mieux géré?
La solution
voici un extrait de code simple
Dim odb As New DataClassesDataContext
Dim tst As New test
tst.name = "abcd"
odb.tests.InsertOnSubmit(tst)
odb.SubmitChanges()
Response.Write("id:" + tst.id.ToString)
Ainsi, l’objet que vous avez utilisé dans InsertOnSubmit aura le champ d’identité rempli après la création de l’enregistrement dans la base de données