Tabela mapowania wielu do wielu

Z przykładów, które widziałem w Internecie oraz w książce Programming Entity Framework CodeFirst, gdy masz kolekcję na obu klasach, EF stworzyłoby tabelę odwzorowań, taką jakMembersRecipes a klucz podstawowy z każdej klasy będzie linkował do tej tabeli.

Jednak gdy wykonam poniższe czynności, zamiast tego otrzymuję nowe pole wRecipes tabela o nazwieMember_Id i aRecipe_Id wMembers stół.

Który tworzy tylko dwie relacje jeden-do-wielu, ale nie wiele do wielu, więc mógłbym mieć Członka 3 połączonego z Przepisami (4,5,6) i Przepisem 4 powiązanym z Członkami (1,2,3) itd.

Czy istnieje sposób na utworzenie tej tabeli odwzorowań? a jeśli tak, to jak nazwać je czymś innym, takim jak „książki kucharskie”?

Dzięki

    public abstract class Entity {
        [Required]
        public int Id { get; set; }
    }   

    public class Member : Entity {
        [Required]
        public string Name { get; set; }

        public virtual IList<Recipe> Recipes { get; set; }
    }

    public class Recipe : Entity {  
        [Required]
        public string Name { get; set; }

        [ForeignKey("Author")]
        public int AuthorId { get; set; }
        public virtual Member Author { get; set; }

            ....

        public virtual IList<Member> Members { get; set; }
    }

AKTUALIZACJA: Poniżej przedstawiam inne podejście, którego próbowałem, a które nie korzysta z Fluent API i zastępujeAuthorId & Author naRecipe z flagą właściciela zmieniłem także nazwę z poniższego przykładuCookbooks doMembersRecipes, naprawia to również mój problem podobny do odpowiedzi, ale jak wspomniano ma dalsze implikacje.

public class MembersRecipes {

    [Key, Column(Order = 0)]
    [ForeignKey("Recipe")]
    public int RecipeId { get; set; }
    public virtual Recipe Recipe { get; set; }

    [Key, Column(Order = 1)]
    [ForeignKey("Member")]
    public int MemberId { get; set; }
    public virtual Member Member { get; set; }

    public bool Owner { get; set; }
}

i wRecipe & Member klasy zmieniłam kolekcje

public virtual IList<MembersRecipes> MembersRecipes { get; set; }

questionAnswers(1)

yourAnswerToTheQuestion