Asp.Net Ядро 3.1 Неверное имя столбца Сообщение об ошибке «Имя столбца»

#entity-framework-core #foreign-keys #asp.net-core-3.1

Вопрос:

Я использую ASP.NET Ядро 3.1 API с ядром Entity Framework, и у меня есть две таблицы, первая из которых есть CategoryType , а вторая CategoryMaster — вот так:

 public class CategoryType
{
    [Key]
    public int TypeId { get; set; }
    public string TypeName { get; set; }
    public string TypeValue { get; set; }
}

public class CategoryMaster
{
    [Key]
    public int CategoryID { get; set; }
    public string CategoryName { get; set; }
    public string CategoryCode { get; set; }
    //Foreign Key data
    [Column("CategoryType")]
    public string CategoryTypeValue { get; set; }
    [ForeignKey("TypeValue")]
    public CategoryType CategoryType { get; set; }

    [DefaultValue(0)]
    public bool? DeleteFlag { get; set; }
}
 

И DbContext это выглядит следующим образом:

 public virtual DbSet<CategoryType> CategoryType { get; set; }
public virtual DbSet<CategoryMaster> CategoryMaster { get; set; }
 

TypeValue Свойство является внешним ключом между этими двумя таблицами, и я не могу его изменить, потому что я выполняю миграцию из устаревшей системы в новую , но проблема в том, что ядро entity framework автоматически определяет ключ идентификатора таблицы как внешний ключ TypeId , по этой причине я получил эту ошибку:

Недопустимое имя столбца «Значение типа»

Я искал во многих областях и пытался подать заявку, но не пришел ни к какому результату:

Как я могу связать внешний ключ с непервичным ключом?

Или с простым вопросом: как я могу сделать таблицу CategoryTypeValue in CategoryMaster внешним ключом для CategoryType таблицы, используя ядро Entity Framework?