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

Visual Studio 2019创建ADO.NET实体数据模型提示未将对象引用设置到对象实例问题

可行排查解决方法

方案1:临时修改项目类型标识绕开识别异常

该问题核心是VS 2019 16.11.x版本的EF工具对Webjob项目的类型识别存在bug,可通过临时修改项目配置解决:

  • 右键Webjob项目,选择【卸载项目】,再次右键选择【编辑项目文件】
  • 找到<ProjectTypeGuids>节点,删除其中Web类型和Webjob专属的GUID(通常为{349c5851-65df-11da-9384-00065b846f21}和Webjob对应GUID),保存文件
  • 右键项目选择【重新加载项目】,此时项目会被识别为普通类库/控制台项目,再执行ADO.NET实体数据模型添加流程
  • 生成EDMX并确认字段、智能提示正常后,重复上述步骤把之前删除的GUID加回<ProjectTypeGuids>节点即可

方案2:跨项目迁移已生成的EDMX文件

直接绕开Webjob项目下的工具生成限制:

  • 新建普通控制台项目,正常生成包含所有表结构的EDMX文件、上下文类、实体类
  • 将生成的所有.edmx、.tt、实体类文件全部复制到Webjob项目的对应目录下
  • 复制控制台项目App.config中的连接字符串、<entityFramework>完整配置节点,替换Webjob项目App.config中的对应部分
  • 重新生成Webjob项目,即可正常使用数据上下文和表字段智能提示

方案3:调整VS运行配置修复工具异常

  • 打开VS顶部菜单栏【工具】-【选项】-【项目和解决方案】-【Web项目】,取消勾选【对Web项目使用64位版本的IIS Express】,保存设置
  • 进入【工具】-【选项】-【NuGet包管理器】-【常规】,点击【清除所有NuGet缓存】
  • 卸载Webjob项目中已安装的EntityFramework NuGet包,重新安装对应版本的EF6包,重启VS后再尝试生成EDMX

方案4:改用Code First反向工程替代EDMX

如果EDMX生成问题始终无法解决,可以使用EF6自带的Code First反向生成功能,完全不需要创建EDMX文件即可获得完整的实体类和上下文:

  • 在Webjob项目中安装对应版本的EntityFramework NuGet包
  • 打开【工具】-【NuGet包管理器】-【包管理器控制台】
  • 执行命令:Scaffold-DbContext "你的数据库连接字符串" System.Data.Entity.SqlServer -OutputDir Models
  • 命令执行完成后会在Models目录下生成完整的上下文类和所有表对应的实体类,功能和EDMX生成的完全一致,智能提示正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:15:03