场景介绍
- 该操作适用于将非空约束改为可控约束、在表中无数据场景下将可空约束改为非空约束或在无数据的场景下添加主外键约束注:本文只考虑上述三种场景下修改实体约束
- 场景1
- 在数据库中无数据的场景下将可空约束改为非空约束
操作步骤
- 步骤一:修改实体属性
- 1、示例中在OrderDetail实体中为ProductName属性添加必填特性
- 2、此时在数据库中改字段为可空
- 步骤二:生成数据库迁移文件点击Visual Studio头部工具栏中的 工具=》NuGet包管理=》程序包管理控制台,打开程序包管理控制台窗口并执行如下命令生成迁移文件
- Add-Migration Constraint_ProductName_Null_To_NotNull_From_OrderDetail
-步骤三:更新数据库迁移
执行以下命令,完成数据库迁移 Update-database Constraint_ProductName_Null_To_NotNull_From_OrderDetai
数据库迁移成功
- 场景2
- 将非空约束改为可空
操作步骤
- 步骤一:修改实体属性1、示例在SaleOrder实体中删除OrderNo属性的必填特性
- 2、此时在数据库中改字段为非空
- 步骤二:生成数据库迁移文件点击Visual Studio头部工具栏中的 工具=》NuGet包管理=》程序包管理控制台,打开程序包管理控制台窗口并执行如下命令生成迁移文件
- Add-Migration Constraint_OrderNo_NotNull_To_Null_From_SaleOrder
-步骤三:更新数据库迁移
- 执行以下命令,完成数据库迁移
Update-database Constraint_OrderNo_NotNull_To_Null_From_SaleOrder
- 数据库迁移成功
- 场景3
- 在无数据或数据无误的场景下添加主外键约束
操作步骤
- 步骤一:修改实体属性
- 1、示例中在OrderDetail实体中添加基于SaleOrder的外键约束
- 2、此时在数据库中OrderDetail表是不存在外键约束的
- 步骤二:生成数据库迁移文件点击Visual Studio头部工具栏中的 工具=》NuGet包管理=》程序包管理控制台,打开程序包管理控制台窗口并执行如下命令生成迁移文件
- Add-Migration ForeignKey_OrderId_To_OrderDetail_From_SaleOrder
-步骤三:更新数据库迁移
- 执行以下命令,完成数据库迁移Update-database ForeignKey_OrderId_To_OrderDetail_From_SaleOrder
- 数据库迁移成功,外键约束添加成功