многие ко многим отношениям, добавляющим пункты - PullRequest
0 голосов
/ 26 апреля 2019

Я использую следующие два класса, как предлагается на этом сайте: https://www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx

   public class Barca
   {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int BarcaID { get; set; } 
    public virtual ICollection<Imbarco> Imbarco { get; set; }
    public virtual Imbarco ImbarcoBase { get; set; }
    }

   public class Imbarco
   {
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ImbarcoID { get; set; }
    public virtual ICollection<Barca> Barche { get; set; }
    public virtual ICollection<Barca> BaseBarche { get; set; }
    }

Мне нужно создать отношение 1 к M, и для этого я использовал эти 2 свойства навигации:

public virtual Imbarco ImbarcoBase { get; set; }
public virtual ICollection<Barca> BaseBarche { get; set; }

но мне также нужны отношения M к M, и для этого я использовал:

public virtual ICollection<Imbarco> Imbarco { get; set; }
public virtual ICollection<Barca> Barche { get; set; }

когда я пытаюсь добавить новый элемент из M в M, таблица мостов не создается в базе данных, как описано в ссылке, указанной выше, а также файл edmx, который я пытался сгенерировать в VisualStudio, создает 0 .. От 1 до M и отношение M к 0..1 вместо m к M. Что я делаю не так?

1 Ответ

0 голосов
/ 26 апреля 2019

Я бы начал с исправления вашей модели.Я рекомендую вам настроить свободный API , но вы можете попробовать аннотацию InverseProperty , чтобы EF установил правильные соединения:

   public class Imbarco
   {
       [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
       public int ImbarcoID { get; set; }

       [InverseProperty("Imbarco")]
       public virtual ICollection<Barca> Barche { get; set; }
       [InverseProperty("ImbarcoBase")]
       public virtual ICollection<Barca> BaseBarche { get; set; }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...