VS2019 .NET5 Web项目添加新项找不到ADO.NET Entity Data Model怎么办
问题原因
该问题是.NET版本兼容性导致的:
- ADO.NET Entity Data Model(EDMX)可视化设计器模板默认仅支持.NET Framework框架的项目,你创建的.NET 5属于.NET Core生态,VS默认不会在这类项目的添加新项菜单中展示EDMX相关选项。
- 即使安装了EF6,若安装的是面向.NET Framework的版本,也无法适配.NET 5项目的模板调用。
解决方法
可根据自身需求选择以下任意一种方案:
方案1:改用.NET Framework项目(最稳定)
如果没有必须使用.NET 5的硬性要求,直接创建基于.NET Framework的ASP.NET Web项目,创建完成后在添加新项的「数据」分类下就能正常找到ADO.NET Entity Data Model选项。
方案2:在.NET 5项目中兼容使用EDMX
如果必须使用.NET 5,可按以下步骤操作:
- 首先确保安装的是EF 6.4及以上版本,仅该版本开始支持.NET Core 3.x/.NET 5+的运行环境。
- 手动修改项目配置:右键你的.NET 5项目,选择「编辑项目文件」,在首行
<Project Sdk="Microsoft.NET.Sdk.Web">下方添加如下属性:
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
- 保存文件后重新加载项目,再次打开添加新项菜单就能看到EDMX模板,该方案属于兼容适配,后续设计器操作可能存在偶发的兼容性问题。
- 备选操作:也可以先创建一个.NET Framework类库项目,在该项目中生成EDMX模型后,将相关的实体文件、上下文文件和配置复制到你的.NET 5项目中,再安装对应版本的EF6包即可正常使用。
方案3:使用官方推荐的Code First模式(更适配.NET 5)
.NET 5+生态官方更推荐使用EF Core的Code First模式替代EDMX设计器:
- 如果是新开发项目,直接编写实体类和数据库上下文,通过迁移命令生成数据库即可。
- 如果是对接现有数据库,可在包管理器控制台执行
Scaffold-DbContext命令反向生成实体类和上下文,效果和EDMX的数据库优先模式完全一致,且没有兼容性问题。
内容的提问来源于stack exchange,提问作者ashkufaraz
相关产品推荐
相关产品推荐

