簡體   English   中英

級聯刪除一對多與一對多

[英]Cascade delete one-to-many with one-to-many

由於 EntityA 與列表中的 RelationAB 有關系,我在刪除 EntityB 的實體時遇到問題。

我可以通過從列表中刪除 RelationAB 來刪除它,但我希望能夠在一個事務中刪除 EntityB。

public class EntityA : Entity {
    List<RelationAB> EntityBs {get; set;}
}

public class EntityB : Entity {
}

public class RelationAB : Entity {
    public EntityA EntityA {get; set;}
    public EntityA EntityAId {get; set;}
    public EntityB EntityB {get; set;}
    public EntityB EntityBId {get; set;}
}

public class RelationABConfiguration : EntityConfiguration<RelationAB>
{
    public override void Configure(EntityTypeBuilder<RelationAB> builder)
    {
        builder.ToTable(nameof(RelationAB));

        builder
            .HasOne(x => x.EntityA)
            .WithMany(x => x.EntityBs)
            .IsRequired()
            .HasForeignKey(x => x.EntityAId)
            .OnDelete(DeleteBehavior.ClientCascade);

        builder
            .HasOne(x => x.EntityB)
            .WithMany()
            .IsRequired()
            .HasForeignKey(x => x.EntityBId)
            .OnDelete(DeleteBehavior.ClientCascade);

        base.Configure(builder);
    }
}

也許讓你的屬性可以為空可以解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM