以下是错误的详细信息:
运行所选代码生成器时出错:'无法执行 ' Models.ApplicationUser'的反向元数据。多个对象集 每种类型不受支持。对象设置' ApplicationUsers'和 '用户'可以包含' Models.ApplicationUser'。
类型的实例
我在MVC项目中搭建一个视图时得到了这个。如果我尝试scafford控制器,我得到了同样的错误。我在SO上看到了一些错误,但似乎那些不适用于我的情况。
这是我的DbContext。它只是带有默认MVC项目的DbSets。对于我的上下文或项目中的任何地方,我没有针对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#。
答案 0 :(得分:0)
我想这是你回答
public class ApplicationUser : IdentityUser
{
public virtual ICollection<List> Lists{ get; set; }
}
你必须给用户类你的Icollection
答案 1 :(得分:0)
我一直面临同样的问题。
当我试图在我的代码中获取所有Application用户时,它会自动在ApplicationDbContext类中创建以下属性:
public System.Data.Entity.DbSet<IHM_Cloud_ERP.DataInputManagerWebUI.Models.ApplicationUser> ApplicationUsers { get; set; }
请删除此行,一切都会好的。