• 在 ABP框架中 使用 EF的 Code First创建数据库迁移 (Entity Framework Code First Migration ,)


    在ABP框架4.0版本以后,ABP官网地址 (https://aspnetboilerplate.com/Templates) 新添加了一个Tools项目,项目名称就是XXXX.Migrator

    该项目为一个数据库初始化程序,所以右键解决方案还原NuGget包。之后生成解决方案。就首次运行该项目来初始化数据库(ABP框架内置的数据库表,ABP.XXX)

    可以用于更新数据库,而不需要使用Update-Database来执行操作。

    参考其他大牛的博客(15年左右的,并没有提到tools项目。所以按照使用Update-Database时笔者这里会报错,,)

    https://www.cnblogs.com/farb/p/4925864.html

    自己的实体使用Code  First 。使用步骤:

    1:创建实体类:

    在XXXX.Core项目中添加你的实体类

    这里只创建了一个,可以自行研究使用生成器创建。

    2:创建DbContext,更新DbContext

     在XXXX.EntityFramework项目中为你的实体类定义IDbSet

     标注地方就是使用上一步骤 创建的 实体类,定义的IDbset”。

    3:创建数据库迁移

    打开vs2017/9 / 工具/  NuGet包管理器 /程序包管理器控制台

    方框内注意要选中 xxxxx.EntityFramework项目,输入以下命令 ,Add-Migration  “InitialData” ; “InitialData” 是生成的文件名,你可以自定义该参数

    回车执行命令就能看到看到新生成的文件,如图所示

     

    具体第二,三个文件含义,请执行,查阅资料,暂且不考虑

    只关注第一个文件的内容:

    大致如下

     此时

    关键一步来了,从网上查阅的资料都是使用

    Update-Database 命令执行

    但是笔者使用该命令老是报错,,,无奈尝试 使用这个tool项目可以成功生成数据表。
    运行该程序(Tools文件夹下的XXXX.Migrator项目), 输入 Y 回车 。如图:

     更新,另一种方式是添加数据种子文件:然后执行Update-Databse 也可,

    具体操作步骤:

    创建成功后,会在Migrations文件夹下创建 时间_InitialData_格式的类文件(参考上文步骤3的描述)。,我们还会发现Migrations文件夹下有个SeedData文件夹,这个文件夹下的类主要是用来进行预置种子数据的。
    我们可以参照已有类的写法,来预置两条种子数据。创建XXXX类文件,代码如下(使用了另一个实体类,):

    之后在XXXX.EntityFramework项目中,找到Configuration类。添加以下代码,就是使用上步创建的

     1 new DefaultTestDataForTask(context).Create(); 

    数据库已经生成的表

     

    完~

  • 相关阅读:
    水晶报表设计--基本概念
    微信公众平台开发小结
    CCF计算机职业认证考试
    Linux 命令
    百度搜索引擎的一些技巧
    Windows的一些操作命令
    Eclipse:写jsp 出现的一些问题
    操作系统(基本问题)
    C语言编程技巧(注意点)
    mysql命令报错问题
  • 原文地址:https://www.cnblogs.com/camefor/p/11868056.html
Copyright © 2020-2023  润新知