在 EF6 Code-First 中管理 3 层表之间的级联删除

问题描述

我正在使用 EF6,我有下表。

  1. 产品
  2. 产品变体
  3. 产品库

现在每个产品将有多个 productvariants,而每个 productvariants 又将有多个 productgallery(images)。

以下是我设计模型的方式。

  1. 产品表
public class ProductsDo
{
    [Key]
    public int Id { get; set; }
    ... With all other fields pertaining to product.

    public virtual List<ProductvariantsDo> Productvariants { get; set; }
}
  1. Productvariants 表
public class ProductvariantsDo
{
    [Key]
    public int Id { get; set; }
    [ForeignKey("Product")]
    public int ProductId { get; set; }
    ... with all other fields pertaining to productvariants.

    public virtual ProductsDo Product { get; set; }
    public virtual List<ProductgalleryDo> Productgalleries { get; set; }
}
  1. Productgallery 表。
public class ProductgalleryDo
{
        [Key]
        public int Id { get; set; }
        [ForeignKey("Productvariant")]
        public int ProductvariantId { get; set; }
        ... with all other fields pertaining to productgallery
        
        public virtual ProductvariantsDo Productvariant { get; set; }

}

当我运行 update-database 命令时,它使用 Productvariant 外键在 Productgallery 上引发错误,它要求删除级联删除。但在这里,我担心如果我删除级联删除,它不会删除删除相应产品变体时的所有产品库。

谁能告诉我如何管理上述情况。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)