Comment mettre à jour la clé primaire de l'Entité Cadre?
J'ai de la Table
eventid int -- not PK key but with autoincrement
jobid -- PK autoincrement disabled
userid int -- PK autoincrement disabled
De mettre à jour jobID je n'suivantes:
var itemforupdate = context.table.where(n=>n.eventid == someparameter).FirstorDefault()
- Je obtenir de l'élément à partir de la base de données correctement, mais lors de l'affectation:
itemforupdate.jobID = 5;
context.SaveChanges();
après context.SaveChanges()
j'obtiens l'erreur:
La propriété 'jobID' est la partie de l'objet clé de l'information et de la
ne peut pas être modifié
Comment mettre à jour jobID de Entity Framework pour résoudre ce problème?
- Je ne suis pas expert avec entity framework, mais ne peut-on pas définir l'objet de la clé à l'id d'événement (car il est auto-incrémentée de toute façon)?
- je viens d'obtenir l'élément de la base de données à l'aide de l'id d'événement qui est unique et en essayant de mettre à jour jobid de EF, mais il donne une erreur
- Doublon de: stackoverflow.com/questions/1367751/...
Vous devez vous connecter pour publier un commentaire.
Mise à jour des colonnes de clé primaire n'est pas une bonne pratique avec EntityFramework. Il confond EF parce qu'elle transforme l'identité de l'objet, et permet de garder en mémoire la copie et la copie de base de données des données de synchronisation très problématique. Il n'est donc pas autorisé.
Il suffit de ne pas mettre à jour les clés primaires. Au lieu de supprimer une ligne et insérez-en une nouvelle.
Alternativement, vous pouvez mettre à jour la clé primaire directement avec une procédure stockée ou d'une autre requête.