我有2個對象 - 父母和子女之間的關係多對多,問題是1父母可以有2個相同的孩子,但EF只保存這種關係1時間。實體框架允許在多對多關係中重複
我發現只有2個工作方案:
- 添加
count
列到表並手工填寫它 - 沒有使用多到很多,但它分割成一個一對多和多對多一個 但我不喜歡這個解決方案,因爲我希望可以有一些更簡單的解決方案。
請問您能幫我嗎?
編輯:聯接表 示例:
1-1
1-1
1-2
1-3
2-3
代碼: model
public class Item
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
public virtual ICollection<Item> childs { get; set; }
public virtual ICollection<Item> parents { get; set; }
}
DB上下文
modelBuilder.Entity<Item>().
HasMany(i => i.childs).
WithMany(i2 => i2.parents).
Map(
m =>
{
m.MapLeftKey("parentId");
m.MapRightKey("childId");
m.ToTable("itemRelationship");
});
如果我理解正確,父母可以有多個孩子和孩子將有父母。然後它可以在1-N關係中完成。如果我的理解錯誤,請糾正我。 –
發佈您的代碼的外觀,以及您使用哪種EF配置方法獲取更多幫助。 – Tim
'1父母可以有2個相同的孩子' - 這很混亂,孩子們如何被認爲是同一個***?沒有更多的解釋,我認爲他們實際上是一個孩子,當你說他們是相同的。 – Hopeless