实体框架和多对多关系中的FOREIGN KEY约束错误介绍

我正在尝试为网络应用创建下一个模型:

  • 公司可以为客户创建客户和类别。
  • 客户可以属于几个类别。
  • 几个客户可以属于同一类别。

实体:

public class Company
{
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    public virtual ICollection<Customer> Customers { get; set; }
    public virtual ICollection<Category> Categories { get; set; }
}

public class Customer
{
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public int CompanyId { get; set; }

    [Required]
    public string FirstName { get; set; }

    [Required]
    public string LastName { get; set; }

    public virtual Company Company { get; set; }
    public virtual ICollection<Category> Categories { get; set; }
}

public class Category
{
    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public int CompanyId { get; set; }

    [Required]
    public string Name { get; set; }

    public virtual Company Company { get; set; }
    public virtual ICollection<Customer> Customers { get; set; }
}

数据上下文:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public DbSet<Company> Companies { get; set; }

    public DbSet<Category> Categories { get; set; }
    public DbSet<Customer> Customer { get; set; }

    public ApplicationDbContext()
        : base(Configurationmanager.ConnectionStrings["DefaultConnection"].ConnectionString,throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

当我运行该应用并尝试建立公司时,出现下一个错误:

在表“ CustomerCategories”上引入FOREIGN KEY约束“ FK_dbo.CustomerCategories_dbo.Categories_Category_Id”可能会导致循环或多个级联路径。指定ON DELETE NO actION或ON UPDATE NO actION,或修改其他FOREIGN KEY约束。 无法创建约束或索引。查看以前的错误。

我不明白为什么会收到此错误。我认为这是一个多对多的关系。我在做什么错了?

tasa86 回答:实体框架和多对多关系中的FOREIGN KEY约束错误介绍

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3168073.html

大家都在问