2008-12-16 16 views
8

¿Cómo puedo obtener una identificación de registro después de guardarla en la base de datos? Lo que quiero decir es en realidad algo así.Obtenga Id usando LINQ to SQL

tengo la clase de documento (que es la entidad aunque la base de datos) y se crea una instancia como

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

de lo que yo quiero es recuperar su valor id (docId) que se encuentra en la base de datos y es primaria clave también número automático. Una cosa es que habrá muchos usuarios en el sistema que enviarán montones de registros como ese.

Gracias de antemano :) todo el mundo

+0

Creo que debería desmarcar como wiki de la comunidad. –

+0

Ok, pero no lo sé, ¿qué significa Community Wiki? – Tarik

Respuesta

12

.SubmitChanges Una vez que se han ejecutado a continuación doc.docId deben estar ocupados con el ello que se creó en la base de datos.

2

Linq to SQL cambia el seguimiento por defecto. Entonces, una vez que se inserta su fila, su objeto se actualiza y se agrega al contexto de datos. Tendrá una nueva fila válida en su colección de documentos.

This publicación de blog de Charlie Calvert tiene algunas buenas muestras de Linq para descargar. Lo guardo solo como referencia.

5

Como todo el mundo ha dicho que debe ser capaz de hacer algo como esto:

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

continuación, obtener el ID con:

int ID = doc.docId; 
+0

Gracias por ayudar y revisar el código. – Tarik