实体框架:如何在一种相关实体上启用级联删除

雷扎·奥利亚伊(Reza Owliaei)

有以下两个实体,例如波纹管:

public class Business
{
    public int Id {get; set;}

    public File Logo {get; set;}
    public int? LogoId {get; set;}

    public File Video {get; set;}
    public int? Video {get; set;}

    public ICollection<File> Images {get; set;}
}

public class File
{
    // some file props, such as Id, Name, ...
}

如何为业务删除中的文件配置级联删除?请考虑,我不需要从File到的任何导航Business

更新:

您可能会在下面找到modelBuilder配置:

        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();

        modelBuilder.Entity<Entities.Business>()
            .HasOptional(b => b.Logo)
            .WithOptionalPrincipal()
            .WillCascadeOnDelete();

        modelBuilder.Entity<Entities.Business>()
            .HasOptional(b => b.Video)
            .WithOptionalPrincipal()
            .WillCascadeOnDelete();

        modelBuilder.Entity<Entities.Business>()
            .HasMany(b => b.Images)
            .WithOptional()
            .WillCascadeOnDelete();

这是我遇到的错误:

在表“文件”上引入外键约束“ FK_dbo.Files_dbo.Businesses_Business_Id1”可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。无法创建约束

虚线

如果您想使用单独的配置类,则可以尝试如下操作:

  public class BusinessConfiguration : EntityTypeConfiguration<Business>
  {
        public BusinessConfiguration()
        {
            HasMany(x => x.Images).WithOptional().WillCascadeOnDelete();
            HasOptional(x => x.Logo).WithOptional().WillCascadeOnDelete();
            HasOptional(x => x.Video).WithOptional().WillCascadeOnDelete();
        }
  }

当您未在其中传递lambda.WithOptional().WithRequired()表示另一方没有导航属性时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架多对多级联删除的一种方法

来自分类Dev

实体框架在删除级联上

来自分类Dev

实体框架硬级联删除

来自分类Dev

实体框架多个级联删除

来自分类Dev

实体框架(核心)-级联删除

来自分类Dev

实体框架核心级联删除

来自分类Dev

如何使用实体框架删除相关字段

来自分类Dev

实体框架代码首先级联删除一对多

来自分类Dev

如何在实体框架中按多个相关实体过滤

来自分类Dev

如何在实体框架中有效地级联删除

来自分类Dev

如何在实体框架中将一种类类型的集合转换为另一种类类型的集合

来自分类Dev

如何配置实体框架级联删除以在一对多关系中正常工作?

来自分类Dev

如何在休眠中将实体正确映射到一种以上的实体类型?

来自分类Dev

实体框架-在相关实体上加载相关实体(一对多)

来自分类Dev

如何在实体框架中设置OnDelete级联

来自分类Dev

实体框架级联删除-FOREIGN KEY约束

来自分类Dev

实体框架级联删除继承的类

来自分类Dev

实体框架核心级联删除错误

来自分类Dev

使用linq的实体框架级联删除

来自分类Dev

如何在ASP.NET中的实体框架中设置删除级联以供自参考外键

来自分类Dev

有没有一种方法可以在启用了审核的CRM实体上禁用对stageid的审核?

来自分类Dev

如何在Spring Controller中从一种表单保存多个相同的实体?

来自分类Dev

单向一对一关系实体框架,级联删除不起作用

来自分类Dev

使用级联删除实体

来自分类Dev

实体框架加载相关实体

来自分类Java

如何级联删除属于jpa实体的集合?

来自分类Java

Hibernate的级联删除相关的实体(多对一一对多)

来自分类Dev

如何在实体框架中更新实体?

来自分类Dev

实体框架核心GroupBy-聚合相关实体上的功能

Related 相关文章

  1. 1

    实体框架多对多级联删除的一种方法

  2. 2

    实体框架在删除级联上

  3. 3

    实体框架硬级联删除

  4. 4

    实体框架多个级联删除

  5. 5

    实体框架(核心)-级联删除

  6. 6

    实体框架核心级联删除

  7. 7

    如何使用实体框架删除相关字段

  8. 8

    实体框架代码首先级联删除一对多

  9. 9

    如何在实体框架中按多个相关实体过滤

  10. 10

    如何在实体框架中有效地级联删除

  11. 11

    如何在实体框架中将一种类类型的集合转换为另一种类类型的集合

  12. 12

    如何配置实体框架级联删除以在一对多关系中正常工作?

  13. 13

    如何在休眠中将实体正确映射到一种以上的实体类型?

  14. 14

    实体框架-在相关实体上加载相关实体(一对多)

  15. 15

    如何在实体框架中设置OnDelete级联

  16. 16

    实体框架级联删除-FOREIGN KEY约束

  17. 17

    实体框架级联删除继承的类

  18. 18

    实体框架核心级联删除错误

  19. 19

    使用linq的实体框架级联删除

  20. 20

    如何在ASP.NET中的实体框架中设置删除级联以供自参考外键

  21. 21

    有没有一种方法可以在启用了审核的CRM实体上禁用对stageid的审核?

  22. 22

    如何在Spring Controller中从一种表单保存多个相同的实体?

  23. 23

    单向一对一关系实体框架,级联删除不起作用

  24. 24

    使用级联删除实体

  25. 25

    实体框架加载相关实体

  26. 26

    如何级联删除属于jpa实体的集合?

  27. 27

    Hibernate的级联删除相关的实体(多对一一对多)

  28. 28

    如何在实体框架中更新实体?

  29. 29

    实体框架核心GroupBy-聚合相关实体上的功能

热门标签

归档