I have table(and also entity in Entity Data Model) Person with following fields:
Name Type
SocialID String
FirstName String
LastName String
which SocialID is Primary Key. I want to update value of SocialID for each record. However when i try to update this field in Entity Framework I get following error:
The property 'SocialID' is part of the object's key information and cannot
be modified.
The code that i get above error is:
foreach (var p in Entity.Persons)
{
p.SocialID= p.SocialID + "00";
Entity.SaveChanges();
}
How I can do this??
As mentioned by the others, you can’t do it in code. You will have to make your update in SQL. Either in a migration or directly in SQL Server Management Studio (or the equivalent if you’re using a different database).
It will require a lot more work than this if you have other tables use this column as a foreign key (you’ll have to drop the constraints first — on all tables that reference your primary key — then fix the data and recreate the constraints). Or as Moe said in the comments, you can set your foreign keys to cascade on update.