オンラインとProgrammingEntityFramework CodeFirstの本で見た例から、両方のクラスにコレクションがある場合、EFはなどのマッピングテーブルを作成し、MembersRecipes各クラスの主キーはこのテーブルにリンクします。
Recipesただし、以下を実行すると、代わりに、というテーブルにMember_Idaという新しいフィールドが表示さRecipe_IdれMembersます。
これは2つの1対多の関係を作成するだけで、多対多の関係は作成しないため、メンバー3をレシピ(4,5,6)にリンクし、レシピ4をメンバー(1,2,3)にリンクさせることができます。
このマッピングテーブルを作成する方法はありますか?もしそうなら、どのようにそれを「料理本」のような他の名前にしますか?
ありがとう
    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; }
    }
更新: 
以下は、Fluent APIを使用せず、AuthorId&AuthoronRecipeを所有者フラグに置き換える別のアプローチです。以下の例の名前もからCookbooksに変更しましたMembersRecipes。これにより、回答と同様の問題が修正されますが、前述のとおり、さらなる影響。
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; }
}
Recipe&クラスでMemberは、コレクションを次のように変更しました
public virtual IList<MembersRecipes> MembersRecipes { get; set; }