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

ASP.NET MVC项目更新EDMX后遇“实体类型<company>未找到”错误求助

ASP.NET MVC + EF 数据库字段删除后EDMX更新报错:“实体类型未在当前上下文中找到”

我正在开发一个基于ASP.NET MVC的Web应用,用Entity Framework连接SQL Server数据库。在SQL Server中删除三个字段后,需要同步更新Web应用的EDMX文件,但无论怎么操作,都一直报**“实体类型未在当前上下文中找到”**的错误。

已尝试的操作

  • 直接在EDMX设计器中移除对应字段,保存后等待上下文及相关EF文件同步
  • 使用“从数据库更新模型”功能同步变更
  • 通过ADO.NET实体数据模型向导删除并重新创建整个EDMX文件
  • 用git diff对比dev分支代码,排查差异
  • 检查并测试连接字符串,确认变更后无配置错误

补充更新(针对旧文件冲突的尝试)

考虑到可能存在旧文件与EDMX变更冲突,还做了以下清理操作,但问题仍未解决:

  • 在Azure Pipelines中启用高级部署选项:RemoveAdditionalFilesFlag和ExcludeFilesFromAppDataFlag
  • 删除Azure DevOps仓库中对应目录文件后重新推送至流水线

可行的排查与解决步骤

  1. 检查上下文类的DbSet声明
    打开EDMX对应的DbContext类(一般命名为xxxContext.cs),确认里面有没有DbSet<Company>的声明,且类名和报错里的<company>完全匹配(注意大小写,EF对类名大小写敏感)。如果没找到,手动添加:
    public DbSet<Company> Companies { get; set; }
    
  2. 强制重新生成EDMX代码
    右键EDMX文件,选择“运行自定义工具”,强制重新生成实体类和上下文代码。同时删除项目的bin和obj目录,重新编译整个解决方案。
  3. 排查命名空间冲突
    检查Company实体类的命名空间是否和上下文类一致,或者有没有多个同名的Company类(比如不同项目里的重复定义)。
  4. 检查EDMX元数据XML
    右键EDMX文件,选择“打开方式”→“XML编辑器”,搜索<EntityType Name="Company">,确认元数据里的实体定义正确,没有残留旧字段或错误配置。如果有异常,手动修正后保存再重新生成。
  5. 验证部署文件版本
    登录Azure部署服务器,确认部署目录里的EDMX文件和编译后的dll是最新版本,没有被旧文件覆盖。可以尝试手动上传最新编译的文件,替代流水线自动部署的文件测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:20:22