C# 如何在实体框架中重命名迁移表?
我想将迁移表从C# 如何在实体框架中重命名迁移表?,c#,asp.net,.net,asp.net-mvc,entity-framework,C#,Asp.net,.net,Asp.net Mvc,Entity Framework,我想将迁移表从dbo.\uu MigrationHistory重命名为SYSTEM.MigrationsHistory。我怎么做 我需要从IdentityDbContext继承,而不是从HistoryContext继承,因此我不能使用代码:modelBuilder.Entity().ToTable(tableName:“MigrationHistory”,schemaName:“SYSTEM”) 我附上我正在使用的代码: public类ApplicationDbContext:IdentityD
dbo.\uu MigrationHistory
重命名为SYSTEM.MigrationsHistory
。我怎么做
我需要从IdentityDbContext
继承,而不是从HistoryContext
继承,因此我不能使用代码:modelBuilder.Entity().ToTable(tableName:“MigrationHistory”,schemaName:“SYSTEM”)
我附上我正在使用的代码:
public类ApplicationDbContext:IdentityDbContext
{
公共应用程序上下文()
:base(“默认连接”)
{
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
//帐目
modelBuilder.Entity().ToTable(表名:“用户”,模式名:“帐户”);
modelBuilder.Entity().ToTable(表名:“角色”,模式名:“帐户”);
modelBuilder.Entity().ToTable(表名:“UserLogins”,模式名:“ACCOUNT”);
modelBuilder.Entity().ToTable(表名:“UserRoles”,模式名:“ACCOUNT”);
modelBuilder.Entity().ToTable(表名:“UserClaims”,模式名:“ACCOUNT”);
//系统
//modelBuilder.Entity().ToTable(表名:“MigrationHistory”,模式名:“SYSTEM”);
}
公共静态应用程序上下文创建()
{
返回新的ApplicationDbContext();
}
}
提前谢谢
关于重命名迁移表的步骤
MyHistoryContext
:使用System.Data.Common;
使用System.Data.Entity;
使用System.Data.Entity.Migrations.History;
命名空间CustomizeLeMigrationShistoryTableSample
{
公共类MyHistoryContext:HistoryContext
{
公共MyHistoryContext(DbConnection DbConnection,字符串defaultSchema)
:base(dbConnection,defaultSchema)
{
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
modelBuilder.Entity().ToTable(表名:“MigrationHistory”,模式名:“SYSTEM”);
}
}
}
ModelConfiguration
使用System.Data.Entity;
命名空间CustomizeLeMigrationShistoryTableSample
{
公共类模型配置:DbConfiguration
{
公共模型配置()
{
这个.SetHistoryContext(“System.Data.SqlClient”,
(connection,defaultSchema)=>new MyHistoryContext(connection,defaultSchema));
}
}
}
迁移
文件夹和配置
类:
启用迁移
对于添加迁移第一次迁移
添加迁移
用于在数据库中应用迁移
更新数据库
学分:
在开始之前,您需要知道只有在应用第一次迁移之前才能自定义迁移历史记录表
详细资料:
HistoryContext
派生类与普通的DbContext
分离,仅用于自定义迁移历史记录表。所有这些都在这里解释。但是请注意链接中的以下段落-在开始之前,您需要知道您只能在应用第一次迁移之前自定义迁移历史记录表。。因此,如果您希望重命名现有的历史记录表,根据文档,这是不可能的。@IvanStoev谢谢您的回答。我需要从IdentityDbContext
继承,而不是从HistoryContext
继承,因此我无法使用它(我无法从两个类继承)。还有别的办法吗?你注意到“分开”这个词了吗?e、 g.class CustomHistoryContext:HistoryContext{…}
-它与您的ApplicationDbContext
无关。我注意到了它,但我不理解它,但我更理解它,我会做测试。