2011-06-24 21 views

Respuesta

36

Después de haber insertado la entidad, debería haberse actualizado para que la propiedad que se asigna a la clave principal en la base de datos tenga el nuevo valor de PK.

+2

¿Eso sucede en Agregar o tengo que guardar los cambios en el contexto primero antes de obtener una ID utilizable? –

+4

Los cambios deben estar comprometidos con la base de datos, agregar solo los pone en el contexto, hasta que llegue a la base de datos, no se generará el valor PK. –

+0

Tenga en cuenta que esto no siempre es perfectamente confiable debido al error SCOPE_IDENTITY. – DFTR

26

Sí, por supuesto, puede hacerlo. Ver ejemplo:

int id = 0; 

using (PC2Entities objectContext = new PC2Entities()) 
{ 
    objectContext.ClientContacts.AddObject(clientContact); 
    objectContext.SaveChanges(); 
    id = clientContact.Id; 

    transaction.Complete(); 
} 

id es el PK.

0

Si aún no obtiene el ID después de insertarlo, agregue este atributo en la propiedad de la clave principal.

[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public string ID { get; set; } 

que tenía que hacer esto, no sé por qué, puede ser porque estoy utilizando Oracle y marco de la entidad no es feliz por eso.

Cuestiones relacionadas