AspNet Identity 2修改表名

时间:2015-03-16 19:26:05

标签: c# .net entity-framework authentication asp.net-identity

我试图修改示例中从AspNetUsers到用户的可怕和疯狂的表名。

我的项目是 WebForm WebSite项目。 我正在使用 Visual Studio 2012 实体框架6和Framework 4.5 。 我已经设置了整个标识内容,一切正常

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

        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类中

,它没有被执行,如果我尝试手动更改表名,我会收到错误:

无效的对象名称&#d ;.AspNetUsers&#39;

因此,根据一些建议,我尝试运行 enable-migrations添加迁移和更新数据库命令,但是从第一个开始就出现以下错误:

PM> enable-migrations -verbose

使用StartUp项目&#39; MyProjectName&#39;。 使用NuGet项目&#39; MyProjectName&#39;。 System.ArgumentException:参数不正确。 (HRESULT异常:0x80070057(E_INVALIDARG))

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

在[0]处重新抛出异常:    在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)    在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData,Int32 type)    在EnvDTE.Properties.Item(对象索引)    at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue [T](Project project,String propertyName)    在System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(String configurationTypeName,Boolean useContextWorkingDirectory)    在System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)    在System.Data.Entity.Migrations.EnableMigrationsCommand。&lt;&gt; c__DisplayClass2。&lt; .ctor&gt; b__0()    在System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action命令) 参数不正确。 (HRESULT异常:0x80070057(E_INVALIDARG))

请告诉我一些指示,因为我不知道该把握手的位置。 感谢

1 个答案:

答案 0 :(得分:0)

发现问题:

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

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