我正在尝试为网络应用创建下一个模型:
- 公司可以为客户创建客户和类别。
- 客户可以属于几个类别。
- 几个客户可以属于同一类别。
实体:
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约束。 无法创建约束或索引。查看以前的错误。
我不明白为什么会收到此错误。我认为这是一个多对多的关系。我在做什么错了?