Hy我正在努力映射以下模型:
[Table("ColumnRules")]
public class ColumnRuleEntity
{
[Required]
public virtual ColumnEntity ParentColumn { get; set; }
public virtual IList<ColumnEntity> DependentColumns { get; set; }
}
我将以下代码添加到On Model创建覆盖:
modelBuilder.Entity<ColumnRuleEntity>().HasMany(r => r.DependentColumns)
.WithMany().Map(mc => mc.ToTable("ColumnRuleDependentColumns")
.MapLeftKey("ColumnRuleId").MapRightKey("ColumnId"));
我正在尝试使用ParentColumn属性和使用DependentColumns属性的ManyToMany关系创建OneToMany关系。
我偶然发现的问题是,仅此代码将为生成的链接表中的数据生成多个级联删除路径。 (删除列将删除ColumnRules,它将删除链接表中的条目,但同时删除应触发删除链接表中相同条目的列)。
我想到的一个解决方案是创建另一个实体,它代表链接表中的一个条目,并且只有在删除ColumnRule实体时才会级联删除它,而不是在删除Column实体时;但我认为这有点麻烦。还有其他方法可以做到吗?