【发布时间】:2014-12-26 17:46:54
【问题描述】:
我创建了一个新的 MVC 5 项目,并尝试为我创建的 Code First 实体启用迁移,但在包管理器控制台中出现以下 PS 异常:
One or more validation errors were detected during model generation:
Project.Web.Models.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. Define the key for this EntityType.
Project.Web.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type 'IdentityUserRole' that has no keys defined.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type 'IdentityUserLogin' that has no keys defined.
问题是我的项目中没有名为IdentityUserRole 或IdentityUserLogin 的类。 Microsoft.AspNet.Identity.EntityFramework 命名空间中存在具有这些名称的类,但错误是说这些类存在于我项目的命名空间中。
我该如何解决这个问题?我已经多次清理和重新编译该项目,但似乎没有任何东西可以解决这个问题。
编辑
如果我删除我的 OnModelCreating 覆盖,一切正常...这就是我在覆盖中的内容:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<CommercialEntity>().ToTable("Commercial", "Entity");
modelBuilder.Entity<ResidentialEntity>().ToTable("Residential", "Entity");
modelBuilder.Entity<ContactsList>().ToTable("ContactsList", "List");
modelBuilder.Entity<ListFacet>().ToTable("ListFacet", "List");
}
我想在 EF 中为我的表设置架构。是否有另一种方法可以通过迁移实现这一目标?
【问题讨论】:
-
这看起来像是来自 ASP.NET Identity 2 的错误,不一定是实体框架。您是否尝试过删除 EF / Identity 2 nuget 包?
-
我已经删除了所有的包并重新添加了它们,但错误仍然存在......你认为我应该将其标记为 ASP.NET 身份问题而不是 EF 问题吗?
标签: c# entity-framework ef-code-first entity-framework-6 entity-framework-migrations