为何Visual Studio 2017添加ADO.NET实体数据模型用EF6.1.3而非6.2.0?
为什么Visual Studio 2017添加ADO.NET Entity Data Model时默认用EF6.1.3而非6.2.0?
这个问题其实挺常见的,核心原因就是Visual Studio的内置模板没跟上NuGet包的更新节奏,具体来说有这几个点:
模板版本固化:VS2017正式发布的时候,EF6.1.3是当时的官方稳定版本,微软把这个版本直接打包进了ADO.NET Entity Data Model的项目模板里。后来EF更新到6.2.0,但VS2017的模板并没有同步迭代——毕竟VS模板的更新频率远低于NuGet包,除非新版本EF带来了重大功能或兼容性问题,否则微软不会轻易修改旧版VS里的内置模板。
稳定性优先考量:EF6.2.0虽然是小版本升级,但微软可能担心直接替换模板中的版本后,会和VS2017自带的实体设计器、代码生成工具等组件出现兼容性问题。为了保证模板的开箱即用稳定性,就保持了原来的6.1.3版本。
手动升级毫无压力:其实你完全可以自己轻松升级到6.2.0,步骤超简单:
- 右键你的控制台项目,选择「管理NuGet程序包」
- 切换到「已安装」标签,找到Entity Framework,点击「更新」按钮选择6.2.0版本
- 升级完成后,原来的实体数据模型功能完全不受影响,该怎么用还是怎么用
另外提一句:如果你换成VS2019或更高版本,模板里的EF版本就会同步到更新的稳定版了,这也能说明是旧版VS模板未更新导致的问题。
内容的提问来源于stack exchange,提问作者BennoDual
相关产品推荐
相关产品推荐

