错误:不支持每个类型有多个对象集



以下是错误的详细信息:

运行所选代码生成器时出错:"无法"模型"的检索元数据。ApplicationUser'。多个对象集不支持按类型。对象集"ApplicationUsers"one_answers"Users"都可以包含"Models"类型的实例。ApplicationUser'。

我是在MVC项目中构建视图时得到的。如果我试图清理控制器,我也会遇到同样的错误。我在SO上看到过一些这样的错误,但这些错误似乎不适用于我的情况。

这是我的DbContext。它只是默认MVC项目附带的一个,只包含几个DbSet。我的上下文或项目中的任何地方都没有任何ApplicationUsers或Users的DbSet或类似的东西。但是为什么我会犯这个错误呢?

public class ApplicationUser : IdentityUser
{        
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {            
    }
    public virtual DbSet<ItemType> ItemTypes { get; set; }
    public virtual DbSet<Item> Items { get; set; }
    public virtual DbSet<Category> Categories { get; set; }
    public virtual DbSet<List> Lists { get; set; }
    public virtual DbSet<Level> Levels { get; set; }        
}

这是我的List课程。我怀疑这个错误与此有关。但为什么呢?

public class List
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }        
    public string UserId { get; set; }
    public virtual ICollection<Item> Items { get; set; }
    public virtual ApplicationUser User { get; set; }
}

这是所有实体中唯一引用ApplicationUser的地方。还有一个有点离题的问题是,"扩展IdentityDbContext而不是在应用程序中创建新的DbContext,这是一个错误的决定吗?"?

环境:MVC5,EF6 Code First,VS2013 Ultimate,C#。

我想这就是你回答

public class ApplicationUser : IdentityUser
{
        public virtual ICollection<List> Lists{ get; set; }
}

您必须为用户类提供您的Icollection

我一直面临着同样的问题。

当我试图在代码中获取所有应用程序用户时,它在ApplicationDbContext类中自动创建了以下属性:

public System.Data.Entity.DbSet<Xxx.DataInputManagerWebUI.Models.ApplicationUser> ApplicationUsers { get; set; }

请删除这行,一切都会好起来的

相关内容

  • 没有找到相关文章

最新更新