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

从数据库更新EntityFramework模型时映射文件未生成问题

解决Entity Framework 6.1.3更新EDMX时映射类缺失及生成错误的问题

这问题我之前帮朋友排查过类似的,结合你的场景(VS2017 15.9.3 + EF6.1.3),给你几个按优先级排序的解决步骤,一步步试应该能搞定:

  • 清理EDMX缓存与生成文件
    有时候VS生成的临时文件或缓存会导致模板生成异常,操作步骤:

    1. 关闭Visual Studio
    2. 找到.edmx文件所在的文件夹,删除以下文件(注意先备份重要的代码文件):
      • .edmx.diagram(如果存在)
      • Model.Context.tt和Model.tt生成的所有.cs文件(包括Model.Context.cs、Model.cs、Model.Mapping.cs等)
    3. 重新打开VS,右键点击.edmx文件,选择运行自定义工具,让T4模板重新生成所有实体和映射代码
  • 重新从数据库更新模型
    如果之前重复添加过表,可能导致EDMX内部元数据冲突:

    1. 打开.edmx设计器,删除已存在的MyTable实体(如果有的话)
    2. 右键设计器空白处,选择从数据库更新模型
    3. 在更新向导中,只勾选目标表MyTable,确保没有重复选择,完成更新操作
  • 修复T4模板的自定义工具设置
    T4模板的自定义工具配置可能被意外修改:

    1. 在解决方案资源管理器中,分别右键点击Model.tt和Model.Context.tt,选择属性
    2. 检查自定义工具字段,确保分别设置为TextTemplatingFileGenerator
    3. 保存属性设置,然后右键每个tt文件选择运行自定义工具
  • 更新Entity Framework版本
    EF6.1.3存在一些已知的生成bug,更新到较新的稳定版本(比如6.4.4)可能解决问题:

    1. 打开NuGet包管理器控制台,执行命令:
      Update-Package EntityFramework -Version 6.4.4
      
    2. 更新完成后,重新执行从数据库更新模型的操作
  • 手动添加缺失的映射类(终极方案)
    如果以上方法都无效,可以手动创建映射类:
    在Model.Mapping.cs中添加以下代码(确保MyTable实体类已正确生成):

    using System.Data.Entity.ModelConfiguration;
    
    public class MyTable_Mapping : EntityTypeConfiguration<MyTable>
    {
        public MyTable_Mapping()
        {
            // 主键映射
            this.HasKey(t => t.Id);
            this.Property(t => t.Id)
                .HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
    
            // 其他属性映射
            this.Property(t => t.AccountUserId).IsRequired();
            this.Property(t => t.MFAUserId).IsRequired();
            this.Property(t => t.LastAuthDate).IsRequired();
            this.Property(t => t.CreateDate).IsRequired();
            this.Property(t => t.StatusId).IsRequired();
    
            // 关联数据库表
            this.ToTable("MyTable");
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:57:11