How to update primary key from Entity Framework?

c# entity-framework sql

Question

I have Table

eventid int -- not PK key but with autoincrement
jobid -- PK autoincrement disabled
userid  int   -- PK autoincrement disabled

To update jobID I do following:

var itemforupdate = context.table.where(n=>n.eventid == someparameter).FirstorDefault()

I get the item from database correctly, but when assigning:

itemforupdate.jobID = 5;
context.SaveChanges();

after context.SaveChanges() I get the error:

The property 'jobID' is part of the object's key information and cannot be modified

How to update jobID from Entity Framework to solve this problem?

1
10
8/10/2017 2:36:26 PM

Accepted Answer

Updating primary key columns is not a good practice with EntityFramework. It confuses EF because it changes the identity of the object, and makes keeping the in-memory copy and the in-database copy of the data in sync very problematic. So it's not allowed.

Just don't update primary keys. Instead delete one row and insert a new one.

Alternatively you can update the primary key directly with a stored procedure or other query.

20
4/16/2015 12:50:16 PM


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow