從我在網上和《編程實體框架》 CodeFirst書中看到的示例中,當您在兩個類上都有一個集合時,EF會創建一個映射表,例如MembersRecipes,每個類的主鍵都將鏈接到該表。但是,當我執行以下操作時,我改為在Recipes表中獲得一個新字段,Member_Id并Recipe_Id在該Members表中獲得a 。這只會創建兩個一對多的關系,而不是一對多的關系,因此我可以將Member 3鏈接到食譜(4,5,6),將Recipe 4鏈接到成員(1,2,3)等。有沒有創建此映射表的方法?如果是的話,您如何命名其他名稱,例如“ cookbooks”?謝謝 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&Author上Recipe的內容,我還將以下示例從重命名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; }
- 1 回答
- 0 關注
- 403 瀏覽
添加回答
舉報
0/150
提交
取消