You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core数据库优先模式:新增表实体及同步数据库变更方法咨询

EF Core Database-First 模式下新增实体及同步数据库变更

一、将新增表(示例:products)添加至现有数据模型

你可以通过Package Manager Console(PMC)或.NET CLI执行脚手架命令,将新增表生成对应的实体类并整合到现有模型中:

使用Package Manager Console(Visual Studio内)

执行以下命令(替换为你的数据库连接字符串):

Scaffold-DbContext "Server=你的服务器名;Database=你的数据库名;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables products -Append

参数说明:

  • -OutputDir Models:指定实体类生成到项目的Models目录
  • -Tables products:仅生成products表对应的实体类
  • -Append:新增实体文件,不会覆盖现有模型内容(EF Core 5及以上版本支持)

使用.NET CLI

执行以下命令:

dotnet ef dbcontext scaffold "Server=你的服务器名;Database=你的数据库名;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models --tables products --append

二、同步SSMS中数据库变更至应用

当你通过SSMS修改了数据库结构(比如新增表/列、修改字段类型、删除字段等),可通过以下方式同步到EF Core模型:

1. 全量同步(覆盖所有实体和上下文)

适用于数据库变更较多、需要完全更新整个模型的场景,执行命令时添加强制覆盖参数:

PMC命令:

Scaffold-DbContext "你的连接字符串" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force

CLI命令:

dotnet ef dbcontext scaffold "你的连接字符串" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models --force

注意:全量同步会覆盖现有实体类和上下文的自定义修改(比如手动添加的注释、数据注解),如果有自定义配置,建议放到单独的IEntityTypeConfiguration实现类中,或用部分类扩展上下文。

2. 增量同步(仅同步指定变更的对象)

适用于仅需同步部分表变更的场景,结合指定表和追加参数:

PMC命令(示例:同步products表修改+新增orders表):

Scaffold-DbContext "你的连接字符串" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables products,orders -Append

CLI命令:

dotnet ef dbcontext scaffold "你的连接字符串" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models --tables products,orders --append

前置要求

确保项目已安装以下NuGet包:

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.SqlServer
  • Microsoft.EntityFrameworkCore.Tools(使用PMC时需要)
  • Microsoft.EntityFrameworkCore.Design(使用.NET CLI时需要)

内容的提问来源于stack exchange,提问作者jayasri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 01:13:31