【发布时间】:2020-06-21 10:59:59
【问题描述】:
我与 child-parent 具有一对多关系,其中包含 parent 中的孩子列表,我删除了该列表,但在数据库中它只删除了 parent Id,
家长:
public void Configure(EntityTypeBuilder<VehicleCategory> builder)
{
builder.OwnsOne(o => o.Name,
sa =>
{
sa.Property("StringValue").HasColumnName("Name").IsUnicode(true).IsRequired();
sa.Ignore("CurrentCultureText");
});
var navigation = builder.Metadata.FindNavigation(nameof(VehicleCategory.Successors));
navigation.SetPropertyAccessMode(PropertyAccessMode.Field);
builder.Property(c => c.IsActive);
builder.Property(c => c.Sequence);
}
孩子
public void Configure(EntityTypeBuilder<VehicleSuccessorCategory> builder)
{
builder.HasOne<VehicleCategory>().WithMany().HasForeignKey(p => p.SuccessorId).IsRequired().OnDelete(DeleteBehavior.Cascade);
builder.Property(e => e.Order).IsRequired();
}
清空列表
public virtual void DeleteAll()
{
_successors.Clear();
}
【问题讨论】:
-
docs.microsoft.com/en-us/ef/core/saving/cascade-delete 您已将您的 deletebehavior 属性设置为“restrict”并且您正在寻找“cascade”。
-
我确实将它设置为级联,但也不工作
-
你能粘贴你的删除代码吗?
-
我更新了代码
-
@sam 请看看我的回答。
标签: sql sql-server entity-framework entity-framework-core