修改实体字段约束

    场景介绍

    • 该操作适用于将非空约束改为可控约束、在表中无数据场景下将可空约束改为非空约束或在无数据的场景下添加主外键约束注:本文只考虑上述三种场景下修改实体约束
    • 场景1
      • 在数据库中无数据的场景下将可空约束改为非空约束

    操作步骤

    • 步骤一:修改实体属性
    • 1、示例中在OrderDetail实体中为ProductName属性添加必填特性
      修改实体字段约束 - 图1
    • 2、此时在数据库中改字段为可空
      修改实体字段约束 - 图2
    • 步骤二:生成数据库迁移文件点击Visual Studio头部工具栏中的 工具=》NuGet包管理=》程序包管理控制台,打开程序包管理控制台窗口并执行如下命令生成迁移文件
    • Add-Migration Constraint_ProductName_Null_To_NotNull_From_OrderDetail 修改实体字段约束 - 图3

    -步骤三:更新数据库迁移
    执行以下命令,完成数据库迁移 Update-database Constraint_ProductName_Null_To_NotNull_From_OrderDetai
    数据库迁移成功
    修改实体字段约束 - 图4

    • 场景2
      • 将非空约束改为可空

    操作步骤

    • 步骤一:修改实体属性1、示例在SaleOrder实体中删除OrderNo属性的必填特性
      修改实体字段约束 - 图5
    • 2、此时在数据库中改字段为非空
      修改实体字段约束 - 图6
    • 步骤二:生成数据库迁移文件点击Visual Studio头部工具栏中的 工具=》NuGet包管理=》程序包管理控制台,打开程序包管理控制台窗口并执行如下命令生成迁移文件
    • Add-Migration Constraint_OrderNo_NotNull_To_Null_From_SaleOrder
    • 修改实体字段约束 - 图7

    -步骤三:更新数据库迁移

    • 执行以下命令,完成数据库迁移

    Update-database Constraint_OrderNo_NotNull_To_Null_From_SaleOrder
    修改实体字段约束 - 图8

    • 数据库迁移成功

    修改实体字段约束 - 图9

    • 场景3
      • 在无数据或数据无误的场景下添加主外键约束

    操作步骤

    • 步骤一:修改实体属性
    • 1、示例中在OrderDetail实体中添加基于SaleOrder的外键约束
      修改实体字段约束 - 图10
    • 2、此时在数据库中OrderDetail表是不存在外键约束的
      修改实体字段约束 - 图11
    • 步骤二:生成数据库迁移文件点击Visual Studio头部工具栏中的 工具=》NuGet包管理=》程序包管理控制台,打开程序包管理控制台窗口并执行如下命令生成迁移文件
    • Add-Migration ForeignKey_OrderId_To_OrderDetail_From_SaleOrder 修改实体字段约束 - 图12

    -步骤三:更新数据库迁移

    • 执行以下命令,完成数据库迁移Update-database ForeignKey_OrderId_To_OrderDetail_From_SaleOrder 修改实体字段约束 - 图13
    • 数据库迁移成功,外键约束添加成功
    • 修改实体字段约束 - 图14