在数据库迁移之后更新实体框架EDMX模型



我有一个问题,即使用实体框架数据库第一种方法生成了多个EDMX和模型,并且这些模型最初是在远程SQL Server 2012实例上映射到表/存储过程的。现在,我们已经迁移到SQL Server 2016,每当我们尝试通过添加新的表,刷新模型等来更新这些EDMX模型时,更新向导无限期地冻结。

我已经在这个问题上进行了一些研究,我已经看到有些人在哪些数据库上更改了兼容性水平,但这是我们希望避免的事情。迁移后,对于服务器上的所有数据库,兼容性级别设置为 SQL Server 2016(130),特别是根据Microsoft Database Consellant的查询优化目的。

我尝试手动更改的某些内容是通过将其从" 2012"设置为" 2016年"中的EDMX XML内容中的 ProvidManifestToken ,但这似乎会引起其他问题。这样做后,我收到了此错误消息:

错误消息

其他可能有用的信息:

  • 使用Visual Studio 2015
  • 实体框架版本6.1.3

有没有人有任何运气从SQL Server 2012到2016年的数据库,同时将清洁映射到自动生成的实体框架模型的同时?似乎有一个内置工具可以清理EDMXS以清洁映射到SQL Server的新实例。

我们最终发现的解决方案是将旧的基数估计更改为 on on 对于所讨论的数据库> SSM中的选项。这使我们能够将兼容性级别设置为数据库中的SQL Server 2016。

作为附加注意事项,在通过Visual Studio中的更新向导更新这些模型时,这些模型似乎将永远需要更新。我们最终让巫师整夜运行,其中一个数据库的模型终于在6小时后完成了更新。因此,他们最终将完成更新,但不会在现实的时间范围内与某人一起工作。

进行配置更改后,模型将立即更新,如人们所期望的。

可以在Entity Framework的GitHub页面上找到解决此更改的问题。看来,实体框架的贡献者尚未发现故障,并将其移交给了SQL Server团队,但是在此发布时尚未实施过修复(据我所知)。

最新更新