Создание нескольких ключей один к одному (не составных) для одной и той же таблицы - PullRequest
0 голосов
/ 27 июня 2019

Мастер с другой таблицей, ссылающейся на свой идентификатор дважды в отношениях один к одному.

Очевидно, что такие вещи, как FK между аннотациями и API повторяются, сейчас перепробовал много комбинаций.Только 1 связь и все работает правильно.

 public class MasterLanguage {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required]
    [StringLength(50)]
    public string Language { get; set; }

    [ForeignKey("TaughtInLanguageId")]
    public UserLearningLanguage masterUserLearningLanguageT { get; set; }
    [ForeignKey("LearningLanguageId")]
    public UserLearningLanguage masterUserLearningLanguageL { get; set; }
}

 public class UserLearningLanguage {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public int LearningLanguageId { get; set; }
    public MasterLanguage MasterLanguageL { get; set; }

    public int TaughtInLanguageId { get; set; }
    public MasterLanguage MasterLanguageT { get; set; }
}

modelBuilder.Entity<MasterLanguage>()
            .Property(b => b.MasterLanguageDateAdded)
            .HasDefaultValueSql("getdate()");

        modelBuilder.Entity<MasterLanguage>()
            .HasOne<UserLearningLanguage>(s => s.masterUserLearningLanguageT)
            .WithOne(t => t.MasterLanguageT)
            .HasForeignKey<UserLearningLanguage>(ad => ad.TaughtInLanguageId)
            .OnDelete(DeleteBehavior.Restrict);

        modelBuilder.Entity<MasterLanguage>()
            .HasOne<UserLearningLanguage>(s => s.masterUserLearningLanguageL)
            .WithOne(l => l.MasterLanguageL)
            .HasForeignKey<UserLearningLanguage>(ad => ad.LearningLanguageId)
            .OnDelete(DeleteBehavior.Restrict);

В настоящее время получается: введение ограничения FOREIGN KEY 'FK_UserLearningLanguages_MasterLanguages_LearningLanguageId' в таблице 'UserLearningLanguages' может вызывать циклы или несколько каскадных путей.Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION, либо измените другие ограничения FOREIGN KEY.Не удалось создать ограничение или индекс.См. Предыдущие ошибки.

Я не хочу ничего удалять из таблицы MasterLanguage, если запись удаляется из таблицы User, она просто должна удалить запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...