2008-12-16 9 views
8

Comment puis-je obtenir un ID d'enregistrement après l'avoir enregistré dans la base de données? Ce que je veux dire est en fait quelque chose comme ça.Obtenir l'ID à l'aide de LINQ to SQL

Je classe de document (qui est l'entité tho de DataBase) et je crée une instance comme

Document doc = new Document() {title="Math",name="Important"}; 
dataContext.Documents.InsertOnSubmit(doc); 
dataContext.SubmitChanges(); 

que ce que je veux est de récupérer sa valeur id (docId) qui est situé dans la base de données et il est primaire touche également le numéro automatique. Une chose, il y aura beaucoup d'utilisateurs sur le système et soumet des tonnes d'enregistrements comme ça.

Merci à l'avance tout le monde :)

+0

Je pense que vous devriez décocher comme communauté wiki. –

+0

Ok mais je ne sais pas réellement Wiki communautaire signifie? – Tarik

Répondre

12

Une fois que vous avez exécuté .SubmitChanges alors doc.docId devraient être avec l'ID qui a été créé sur la base de données.

2

Linq to SQL modifie le suivi par défaut. Ainsi, une fois votre ligne insérée, votre objet est mis à jour et ajouté au datacontext. Vous aurez une nouvelle ligne valide dans votre collection de documents.

This blog posté par Charlie Calvert a quelques bons échantillons Linq pour le téléchargement. Je le garde juste pour référence.

5

Comme tout le monde a dit que vous devriez être en mesure de faire quelque chose comme ceci:

Document doc = new Document() {title="Math",name="Important"}; 
dataContext.Documents.InsertOnSubmit(doc); 
dataContext.SubmitChanges(); 

puis obtenir l'ID avec:

int ID = doc.docId; 
+0

Merci d'avoir aidé et révisé le code. – Tarik