错误 - 执行时“无法删除约束”.AsQueryable();

时间:2014-02-17 20:44:53

标签: c# sql entity-framework many-to-many

我首先使用EF代码生成多对多的关系。如下:

public  class User
{
    public User()
    {
        Categories = new Collection<Category>();
    }
    public  int UserId { get; set; }
    public  string LastName { get; set; }
    public ICollection<Category> Categories { get; set; }
}

 public sealed class Category
{
    public Category()
    {
        Users = new Collection<User>();
    }
    public string Name { get; set; }
    public int Id { get; set; }
    public ICollection<User> Users { get; set; }

}

我的Db上下文如下:

    public DbSet<User> Users { get; set; }
    public DbSet<Category> Categories { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {

        modelBuilder.Entity<User>().HasMany(b => b.Categories).WithMany(a => a.Users).Map(m => m.MapLeftKey("userId").MapRightKey("id"));

        base.OnModelCreating(modelBuilder);
    }

奇怪的问题是当我做简单的动作时:

_ctx.Categories.AsQueryable();

我收到以下错误:

  

约束'PK_dbo.Categories'由表'UserCategories'引用,外键约束'FK_dbo.CategoryUsers_dbo.Categories_id'。   无法删除约束。查看以前的错误。

0 个答案:

没有答案