I'm not sure you should find a way around this. I can not imagine why it would be nice to change the value in the PC. The whole nature of a PC is that it is a stable string identifier.
PK "Id", , "", "". , "Id" , .
EDIT:
, . , OP " ", , FK, PK, (to PK "Id", ). FK, , ( , RDBMS) :
- FK
- PK
- PK "Id".
- "" ""
- FK, UNIQUE INDEX
Microsoft SQL Server, , FK, UNIQUE INDEX, , , LINQ PK "Id" .