Обновление первичного ключа в Entity Framework Code First

Я хочу обновить первичные ключи промежуточной таблицы. Этот пост предлагает взять еще один первичный ключ и не изменять его, но мы используем наши таблицы в других проектах, отличных от EF, я их не проектировал и Я не могу их изменить. Есть ли у меня другой вариант? Что-нибудь? Даже удаление старой записи и вставка новой. Я просто не знаю, как восстановить старые значения.

Это мой класс:

public class ZChangeUnits : User
{
    [Key]
    [Column(TypeName = "VARCHAR", Order = 0), StringLength(4)]
    public string CCode1 { get; set; }

    [ForeignKey("CCode1")]
    public virtual ZUnits ZUnits1 { get; set; }

    [Key]
    [Column(TypeName = "VARCHAR", Order = 1), StringLength(4)]
    public string CCode2 { get; set; }

    [ForeignKey("CCode2")]
    public virtual ZUnits ZUnits2 { get; set; }

    [Column(TypeName = "NUMERIC")]
    [DecimalPrecision(18, 5)]
    public decimal NZarib { get; set; }
}

UPDATE

Я опубликовал схему ниже, левая таблица используется для преобразования единиц. На самом деле это предложенный метод в этом ответе.

Я не могу придумать другого способа реализовать это. Должен ли я обновить мой дизайн таблицы или какой-то код EF выполнит эту работу. Любая помощь и решение приветствуются.:)

Table's relationships