MVC5 Identity EF 6 Fluid API错误

时间:2015-02-16 20:55:50

标签: entity-framework asp.net-identity

我正在使用MVC5,默认模板和身份2.0用户系统与EF6。

我将OnModelCreating添加到我的ApplicationDbContext : IdentityDbContext<ApplicationUser>类,以便使用流体API在两个类之间创建多对多的关系。

当我运行update-database时,这导致了这些错误,即使我没有对这些表格进行任何操作:

  

EntityType'IdentityUserLogin'没有定义键。定义此EntityType的键。    EntityType'IdentityUserRole'没有定义键。定义此EntityType的键。   IdentityUserLogins:EntityType:EntitySet'IdentityUserLogins'基于没有定义键的类型'IdentityUserLogin'。   IdentityUserRoles:EntityType:EntitySet'IdentityUserRoles'基于类型'IdentityUserRole',没有定义键。

在互联网上搜索我发现另一个stackoverflow问题,将其添加到我的OnModel创建中:

      modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);
        modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id);
        modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });

这解决了这些错误,但现在我有这个错误:

  

无法找到对象“dbo.AspNetUserClaims”,因为它不存在或您没有权限。

如何修复此最后一个错误,为什么我在介绍OnModelCreating()后会解决所有这些错误?

1 个答案:

答案 0 :(得分:2)

调用基类OnModelCreating,在我被覆盖的一端,修复了问题:

base.OnModelCreating(modelBuilder); 

在评论中感谢@Augusto Barreto。