gpt4 book ai didi

c# - Entity Framework 6.1 Code First 迁移错误 : EntityType 'IdentityUserRole' has no key defined

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:32 24 4
gpt4 key购买 nike

我创建了一个新的 MVC 5 项目,并尝试为我一直在创建的代码优先实体启用迁移,当我在包管理器控制台中收到以下 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 中为我的表设置架构。是否有另一种方法可以通过迁移实现这一目标?

最佳答案

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

    base.OnModelCreating(modelBuilder);

希望这对其他人有帮助!

关于c# - Entity Framework 6.1 Code First 迁移错误 : EntityType 'IdentityUserRole' has no key defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27660203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com