下面是錯誤的詳細信息:錯誤:每個類型的多個對象集,不支持
There was an error running the selected code generator: 'Unable to retrive metadata for 'Models.ApplicationUser'. Multiple object sets per type are not supported. The objects sets 'ApplicationUsers' and 'Users' can both contain instances of type 'Models.ApplicationUser'.
我得到這個,而腳手架MVC項目中的視圖。我得到了同樣的錯誤,如果我嘗試scafford控制器。我已經看到了一些這樣的錯誤,但它似乎不適用於我的情況。
這是我的DbContext。它只是帶有幾個DbSets的默認MVC項目。我沒有任何DbSet的ApplicationUsers或用戶或類似的東西在我的上下文或項目中的任何地方。但是,爲什麼我得到這個錯誤?
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#。
你用'DbContext'試過了嗎?你有同樣的錯誤嗎? –
嗨Inanikian,感謝您的評論。我不明白。由於ApplicationUser是從IdentityUser繼承的,如果我將IdentityDbContext更改爲DbContext,那麼在應用程序中將會有數十個錯誤。我該怎麼辦? – lawphotog
[VS 2013控制器腳手架失敗的可能重複的應用程序用戶模型(不支持多個對象集每個類型)](http://stackoverflow.com/questions/19888576/vs-2013-controller-scaffolding-fails-for-所述-applicationuser模型-多OBJ) –