我试图修改示例中从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))
请告诉我一些指示,因为我不知道该把握手的位置。 感谢
答案 0 :(得分:0)
发现问题:
EntityFramework没有对网站项目的完全支持 https://entityframework.codeplex.com/workitem/568
因此,唯一的方法是创建 Web应用程序项目并迁移所有现有代码。