首页 > 解决方案 > 如何配置模型构建器以在删除用户时删除所有配方但在删除配方时保留用户

问题描述

这是我现在的模型构建器,但是当我删除用户时,它会将食谱用户 ID 设置为空。

  protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<ApplicationUser>().HasMany(e => e.Recipes).WithOne(e => e.ApplicationUser)
                .OnDelete(DeleteBehavior.Cascade);

            modelBuilder.Entity<Recipe>().HasOne(e => e.ApplicationUser).WithMany(e=>e.Recipes)

        }

标签: c#asp.netentity-framework-coreef-model-builder

解决方案


我认为您夸大了映射,您只需要将一个实体映射到另一个。

尝试先使用这个;

modelBuilder.Entity<ApplicationUser>().HasMany(e => e.Recipes).OnDelete(DeleteBehavior.Cascade);

modelBuilder.Entity<Recipe>().HasOne(e => e.ApplicationUser);

如果上述方法不起作用,请单独尝试此方法;

modelBuilder.Entity<ApplicationUser>().HasMany(e => e.Recipes).OnDelete(DeleteBehavior.Cascade);

推荐阅读