首页 » .NET » Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之数据迁移

Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之数据迁移

原文 http://blog.csdn.net/tianxiaode/article/details/78858184

2017-12-23 02:00:30阅读(447)

尝试新的开发组合:Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之配置IdentityServer Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之数据迁移

在上一篇文章通过修改迁移文件把索引字段的长度修改为了255,但感觉这并非持久之法,经过GitHub取经之后,终于明确了要在SimpleCmsWithAbpDbContext类中通过重写OnModelCreating方法的方式来重新定义字段长度,具体代码如下:

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<User>().Property(p => p.EmailAddress).HasMaxLength(255);
            modelBuilder.Entity<User>().Property(p => p.NormalizedEmailAddress).HasMaxLength(255);
            modelBuilder.Entity<Setting>().Property(p => p.Name).HasMaxLength(255);
            modelBuilder.Entity<ApplicationLanguageText>().Property(p => p.Key).HasMaxLength(255);
            modelBuilder.Entity<UserLogin>().Property(p => p.ProviderKey).HasMaxLength(255);
        }

如果现在在程序包控制器管理器执行Add-Migration命令创建一个新的迁移,那么,会发现在不修改20170424115119_Initial_Migrations.cs的字段长度下,迁移时还是会出现错误的,因为那时候已经创建索引了,因而,最彻底的办法是多次执行Remove-Migration命令,把原有的迁移都清除,再重新创建迁移。而最直接的办法,就是把所有迁移文件全部删除。

要注意,在执行Remove-Migration命令前,要先把数据库里的表格全部清理掉,不然,执行命令会出错。

清理完原有的迁移文件后,就可以执行以下命令来创建新的迁移文件了:

Add-Migration InitialMigrations -Context SimpleCmsWithAbpDbContext

命令中,InitialMigrations是迁移的名称,参数Context用来指定要创建迁移的DbContext。

重新生成迁移后,现在的迁移文件就清爽很多了,没了之前那么多复杂的东西。

余下就是迁移PersistedGrant库,在SimpleCmsWithAbpDbContext类上添加IAbpPersistedGrantDbContext接口,接下来在类内添加以下代码来添加PersistedGrantEntity实体:

public DbSet<PersistedGrantEntity> PersistedGrants { get; set; }

还需要在OnModelCreating方法内,在最后添加以下语句来执行实体的Fluent API:

modelBuilder.ConfigurePersistedGrantEntity();

代码添加完成后,执行以下命令来添加PersistedGrant的迁移文件:

Add-Migration AddPersistedGrantEntity -Context SimpleCmsWithAbpDbContext

现在,迁移文件准备好了,可以运行Migrator项目来进行迁移了。这里不采用Update-Database来更新数据库的目的是要调用Seed方法来初始化一些数据。

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹