Entity Framework 4 obtient l’ID de clé primaire pour l’enregistrement inséré

J’utilise Entity Framework pour insérer une ligne dans ma firebase database SQL. Si je devais utiliser une procédure stockée, je serais en mesure de renvoyer la clé primaire de l’enregistrement que j’avais inséré.

Est-ce que je peux renvoyer le PK pour le dernier enregistrement inséré avec Entity Framework?

Une fois que vous avez inséré l’entité, celle-ci doit avoir été mise à jour pour que la propriété qui correspond à la clé primaire de la firebase database ait la nouvelle valeur PK.

Oui bien sûr, vous pouvez le faire. Voir exemple:

int id = 0; using (PC2Entities objectContext = new PC2Entities()) { objectContext.ClientContacts.AddObject(clientContact); objectContext.SaveChanges(); id = clientContact.Id; transaction.Complete(); } 

id est le PK.

Pour Oracle.ManagedDataAccess.EntityFramework (version 6.121 ou antérieure)

Si vous ne recevez toujours pas l’ID après l’insertion, ajoutez cet atsortingbut à la propriété de clé primaire.

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

Je devais le faire, je ne sais pas pourquoi, peut-être parce que j’utilise Oracle et que le cadre de l’entité n’est pas heureux à ce sujet.

Edit: Je vois que cette réponse est votée à la baisse, et je sais pourquoi, car la dernière version d’ODAP ne vous oblige pas à mettre le [DatabaseGenerated (DatabaseGeneratedOption.Identity)]. Mais c’était vrai pour les anciennes versions.