【问题标题】:Entity Framework 6.1 Code First migration error: EntityType 'IdentityUserRole' has no key definedEntity Framework 6.1 Code First 迁移错误:EntityType 'IdentityUserRole' 没有定义键
【发布时间】: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.

问题是我的项目中没有名为IdentityUserRoleIdentityUserLogin 的类。 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


【解决方案1】:

我刚刚找到了答案!在我的 Db Context 类中使用 OnModelCreating 覆盖,我意识到我没有调用基本方法。我在覆盖的末尾添加了以下行,一切都开始工作了!

    base.OnModelCreating(modelBuilder);

希望这对其他人有帮助!

【讨论】:

    猜你喜欢
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 2015-09-18
    相关资源
    最近更新 更多