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

如何为EF Core反向生成的模型添加名称后缀?

为EF Core Scaffold生成的模型添加Entity后缀的方法

EF Core的dotnet ef dbcontext scaffold命令没有内置参数直接为生成的模型类添加Entity后缀,不过可以通过以下两种方式实现需求:

方法一:自定义脚手架模板

通过修改EF Core的脚手架模板,让生成的模型类自动带上Entity后缀:

  1. 先安装并导出默认的EF Core脚手架模板到本地目录:
    dotnet new install Microsoft.EntityFrameworkCore.Templates
    dotnet new ef-scaffold-template --output ScaffoldTemplates
    
  2. 打开导出模板中的Class.cs.t4文件,找到类名生成的代码(通常是@Model.ClassName),将其修改为@Model.ClassName + "Entity"后保存文件。
  3. 执行scaffold命令时指定自定义模板路径:
    dotnet ef dbcontext scaffold "你的数据库连接字符串" Microsoft.EntityFrameworkCore.SqlServer --template ScaffoldTemplates/Class.cs.t4 --output Models
    

方法二:批量修改生成的文件

先正常生成模型,再用脚本批量重命名文件和类名:

  1. 执行常规scaffold命令生成模型文件:
    dotnet ef dbcontext scaffold "你的数据库连接字符串" Microsoft.EntityFrameworkCore.SqlServer --output Models
    
  2. 使用脚本批量修改:
    比如适用于Windows的PowerShell脚本:
    Get-ChildItem -Path .\Models -Filter *.cs | ForEach-Object {
        # 重命名文件
        $newFileName = $_.Name -replace '(\w+)\.cs', '$1Entity.cs'
        # 修改文件内的类名
        $fileContent = Get-Content $_.FullName -Raw
        $updatedContent = $fileContent -replace 'public partial class (\w+)', 'public partial class $1Entity'
        $updatedContent | Set-Content $_.FullName
        # 重命名文件
        Rename-Item $_.FullName $newFileName
    }
    
    若使用Linux/macOS,可编写bash脚本或Python脚本实现类似的批量替换逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:05:02