Внешний ключ Entity Framework 6 и целевой столбец разных типов - PullRequest
0 голосов
/ 07 января 2020

недавно была обновлена ​​база данных ГИС сервера sql, которая изменила несколько типов данных.

Теперь у меня есть таблица с именем Trail и столбцом с именем Status типа Numeri c (40,0), это быть внешним ключом для таблицы с именем Trail_Status со столбцом с именем Status_Key (int)

здесь была моя попытка.

 public class TrailConfiguration : EntityTypeConfiguration<TrailModel>
    {
        public TrailConfiguration()
        {
            this.ToTable("PA_TRAILS", "dbo");

            this.Property(p => p.StatusKey)
                .HasColumnName("STATUS")
                .HasColumnType("numeric")
                .IsRequired();

              this.HasRequired(p => p.Status)
                .WithMany()
                .HasForeignKey(k => k.StatusKey);
      }
  }

public class TrailModel 
{
    [Column(TypeName = "numeric")]
    public int StatusKey { get; set; }

     public virtual TrailStatusModel Status { get; set; }
 }

 public TrailStatusConfiguration()
    {
        this.ToTable("trail_status", "dbo");

        this.HasKey(k => k.StatusKey);

        this.Property(p => p.StatusKey)
            .HasColumnName("status_key")
            .HasColumnType("int")
            .IsRequired();

        this.Property(p => p.Name)
            .HasColumnName("name")
            .HasColumnType("nvarchar")
            .IsRequired();
    }

public class TrailStatusModel
    {
        public int StatusKey { get; set; }
        public string Name { get; set; }
    }

Я получаю следующую ошибку.

TrailStatusModel_TrailModel :: Типы всех свойств в зависимой роли ссылочного ограничения должны совпадать с типами соответствующих свойств в главной роли. Тип свойства 'STATUS' для объекта 'TrailModel' не соответствует типу свойства 'status_key' для объекта 'TrailStatusModel' в ссылочном ограничении 'TrailModel_Status'.

...