Спасибо. Я пробовал оба варианта решений, и оба варианта отлично работают. Я потратил много времени на поиски ответа. Я должен был сделать вопрос ранее на стека overflow.
ичок в EF. И я столкнулся с проблемой с созданием отношения «многие ко многим». Я пытался использовать решение из:Entity Framework Core: отношение «многие ко многим» с одним и тем же объектом
мои лица:
public class WordEntity
{
public long Id { get; set; }
public string Name { get; set; }
public string Json { get; set; }
public virtual List<WordSinonymEntity> Sinonyms { get; set; }
}
public class WordSinonymEntity
{
public long WordId { get; set; }
public virtual WordEntity Word { get; set; }
public long SinonymId { get; set; }
public virtual WordEntity Sinonym { get; set; }
}
и следующая конфигурация:
modelBuilder.Entity<WordSinonymEntity>()
.HasOne(pt => pt.Sinonym)
.WithMany(p => p.Sinonyms)
.HasForeignKey(pt => pt.SinonymId);
modelBuilder.Entity<WordSinonymEntity>()
.HasOne(pt => pt.Word)
.WithMany(t => t.Sinonyms)
.HasForeignKey(pt => pt.WordId);`
но это приводит к следующему исключению.
System.InvalidOperationException: «Невозможно создать связь между« WordEntity.Sinonyms »и« WordSinonymEntity.Word », поскольку между« WordEntity.Sinonyms »и« WordSinonymEntity.Sinonym »уже есть связь. Свойства навигации могут участвовать только в одном отношении. '
Кто-нибудь может мне помочь или может быть предложить несколько примеров для изучения? Благодарю.