如何使用数据库优先方法更新.Net Core中的数据库上下文类?

问题描述

我有一个使用ASP Web表单的应用程序。我正在致力于将此Web窗体应用程序迁移到.net core 3.0。 我使用数据库优先方法,因为我拥有完善的表结构,许多存储过程和太多数据。 今天,我在数据表“股票”中添加了一些新列。 列名称为:

  1. 颜色ID。 2. Location_Id

我还在数据库添加一个新表“ Locations”。 现在的问题是,如何使用.net core中的数据库优先方法,针对这两个表更改,如何在我的项目中更新数据库上下文模型类。

解决方法

脚手架上下文

使用程序包管理器控制台

Scaffold-DbContext "your_connection_string" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

使用CLI

dotnet ef dbcontext scaffold "your_connection_string" Microsoft.EntityFrameworkCore.SqlServer -o Models -f

更新上下文

如果要在更改架构后重新构建模型,可以通过指定-force选项来完成,例如:

dotnet ef dbcontext scaffold "your_connection_string" Microsoft.EntityFrameworkCore.SqlServer -force

所有类文件将被覆盖,这意味着您可能对它们进行了任何修改,例如添加属性或其他成员将丢失。