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();
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?
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.