AspNet Identity 2 修改 table 个名称

AspNet Identity 2 Modifying table names

我正在尝试将示例中的可笑和疯狂的 tables 名称从 AspNetUsers 修改为 Users。

我的项目是 WebForm 网站项目。 我正在使用 Visual Studio 2012Entity Framework 6 和 Framework 4.5。 我已经设置了整个身份信息,一切正常

现在我需要更改 table 的名字。 如果我只输入以下代码:

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder); // This needs to go before the other rules!

        modelBuilder.Entity<IdentityUser>().ToTable("Users");
        modelBuilder.Entity<IdentityRole>().ToTable("Roles");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
    }

在 ApplicationDbContext class 中,它没有执行,如果我尝试手动更改 table 名称,我会收到错误消息:

对象名称无效'dbo.AspNetUsers'

因此,根据一些建议,我尝试 运行 enable-migrations Add-Migration 和 Update-Database 命令,但从第一个命令开始,以下内容错误:

PM> enable-migrations -verbose

使用启动项目'MyProjectName'。 使用 NuGet 项目 'MyProjectName'。 System.ArgumentException: 参数不正确。 (HRESULT 异常:0x80070057 (E_INVALIDARG))

服务器堆栈跟踪: 在 EnvDTE.Properties.Item(对象索引) 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) 在 System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage 消息)

在 [0] 重新抛出异常: 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 类型) 在 EnvDTE.Properties.Item(对象索引) 在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue[T](项目项目,字符串属性名称) 在 System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(字符串配置类型名称,布尔值 useContextWorkingDirectory) 在 System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(字符串上下文类型名称) 在 System.Data.Entity.Migrations.EnableMigrationsCommand.<>c__DisplayClass2.<.ctor>b__0() 在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(动作命令) 参数不正确。 (HRESULT 异常:0x80070057 (E_INVALIDARG))

请给我一些指示,因为我已经不知道把手放在哪里了。 谢谢

发现问题:

EntityFramework 没有完全支持网站项目 https://entityframework.codeplex.com/workitem/568

所以唯一的方法是创建一个 Web 应用程序项目 并迁移所有现有代码。