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

执行Scaffold-DbContext时EF生成错误表类名如何修复?

修复EF Scaffold生成错误类结构的方案

方法1:数据注解手动修正

  • 删除PackageData类内部的PackageDatum类
  • 将原PackageDatum中的属性移到PackageData类中,同时添加表映射注解明确关联数据库表:
using System.ComponentModel.DataAnnotations.Schema;

[Table("PackageData")]
public class PackageData
{
    // 原PackageDatum类的属性全部迁移到此处
    public int Id { get; set; }
    // 其他表字段对应的属性...
}

方法2:Fluent API配置表映射

  • 移除PackageData内部的PackageDatum类,保留PackageData类结构
  • 在项目的DbContext类的OnModelCreating方法中添加表映射规则:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<PackageData>()
        .ToTable("PackageData");
    
    // 其他实体的配置代码...
}

方法3:重新生成时指定规则避免错误

在Scaffold-DbContext命令中添加参数,指定目标表并启用数据注解生成,让工具直接生成正确的类结构:

Scaffold-DbContext "Server=.;User ID=*****;Password=*******;Database=*******;Trusted_Connection=True;Encrypt=False;" 
         Microsoft.EntityFrameworkCore.SqlServer 
         -OutputDir Models -force -Tables PackageData -DataAnnotations

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:53:13