Мой класс слов
Код: Выделить всё
[Table("Word", Schema = "dbo")]
public class Word
{
public int Word_ID { get; set; }
public string Word_EN { get; set; }
public NounVerbAdj WordType { get; set; }
public string? Sentence_En { get; set; }
public string? Sentence_Tr { get; set; }
public bool Verify { get; set; }
public virtual List Antonym1 { get; set; }
public virtual List Antonym2 { get; set; }
public virtual List Synonym1 { get; set; }
public virtual List Synonym2 { get; set; }
}
public class WordConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.Property(x => x.Word_ID).ValueGeneratedOnAdd();
builder.Property(x => x.Word_EN).IsRequired(true).HasMaxLength(30);
builder.Property(x => x.WordType).IsRequired(true).HasMaxLength(1);
builder.Property(x => x.Verify).IsRequired(true).HasDefaultValue(false);
builder.Property(x => x.Sentence_En).IsRequired(false).HasMaxLength(200);
builder.Property(x => x.Sentence_Tr).IsRequired(false).HasMaxLength(200);
builder.HasIndex(x => x.Word_ID).IsUnique(true);
builder.HasKey(x => x.Word_ID);
}
}
Код: Выделить всё
[Table("Antonym", Schema = "dbo")]
public class Antonym
{
public int Word_ID_1 { get; set; }
public virtual Word Word_1 { get; set; }
public int Word_ID_2 { get; set; }
public virtual Word Word_2 { get; set; }
}
public class AntonymConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.HasKey(wk => new { wk.Word_ID_1, wk.Word_ID_2 });
builder.HasOne(wk => wk.Word_1)
.WithMany(w => w.Antonym1)
.HasForeignKey(wk => wk.Word_ID_1);
builder.HasOne(wk => wk.Word_2)
.WithMany(w => w.Antonym2)
.HasForeignKey(wk => wk.Word_ID_2);
}
}
Введение ограничения FOREIGN KEY «FK_Antonym_Word_Word_ID_2» в таблице «Antonym» может вызвать циклы или несколько каскадных путей. . Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION или измените другие ограничения FOREIGN KEY.
Я просто хочу создать эти таблицы и связи:

Данные каждого слова на них могут ссылаться несколько синонимов и антонимов. Я хочу создать эту связь между словами, сохранив месяцы языков слов в другой таблице.
Как я могу предотвратить циклы или другие проблемы? Я не могу запустить миграцию EF для обновления базы данных.
Подробнее здесь: https://stackoverflow.com/questions/784 ... -coding-an