從我在網(wǎng)上和《編程實(shí)體框架》 CodeFirst書中看到的示例中,當(dāng)您在兩個(gè)類上都有一個(gè)集合時(shí),EF會(huì)創(chuàng)建一個(gè)映射表,例如MembersRecipes,每個(gè)類的主鍵都將鏈接到該表。但是,當(dāng)我執(zhí)行以下操作時(shí),我改為在Recipes表中獲得一個(gè)新字段,Member_Id并Recipe_Id在該Members表中獲得a 。這只會(huì)創(chuàng)建兩個(gè)一對(duì)多的關(guān)系,而不是一對(duì)多的關(guān)系,因此我可以將Member 3鏈接到食譜(4,5,6),將Recipe 4鏈接到成員(1,2,3)等。有沒有創(chuàng)建此映射表的方法?如果是的話,您如何命名其他名稱,例如“ 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,并用所有者標(biāo)志替換AuthorId&Author上Recipe的內(nèi)容,我還將以下示例從重命名Cookbooks為MembersRecipes,這也解決了與答案類似的問題,但如上所述進(jìn)一步的含義。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班級(jí)中,我將集合更改為public virtual IList<MembersRecipes> MembersRecipes { get; set; }
- 1 回答
- 0 關(guān)注
- 394 瀏覽
添加回答
舉報(bào)
0/150
提交
取消