c#mvc项目DB数据向后兼容性

时间:2017-11-16 11:10:17

标签: .net sql-server asp.net-mvc c#-4.0

我在项目中遇到了一个我正在开发的问题,我想咨询一下这个解决方案。应用程序必须支持多个版本。与参数数量和名称相关的网页版本可能会有所不同在数据库中。我们可以通过使用实体框架使网页动态化,但是当版本升级时,会出现使旧表与新表兼容的成本。 我怎样才能摆脱这笔费用?你能帮助我吗?

项目:c#mvc项目 DB:Mssql

1 个答案:

答案 0 :(得分:0)

在支持多个版本网站的环境中,这是一个众所周知的问题。这也是微服务领域中众所周知的问题,必须支持同一微服务的多个不同版本。

不幸的是,没有简单的方法。您必须编写在不同版本之间执行功能映射的代码,并且您必须准备好永远编写此版本映射代码。

这就是为什么发明了破坏变化与非破坏性变化的概念。当引入的新功能与我们无法将旧功能映射到新功能的旧功能完全不同时,我们说我们有一个突破性的变化,我们增加主要版本号,我们把新版本的代码和数据与旧版本分开,从而破坏了旧版本的支持。如果更改没有中断,那么我们编写映射代码,我们只增加次要版本号,表明新内容保留了与旧内容的向后兼容性。

贵公司内部的一些非技术决策者可能认为认为向后兼容应该不是什么大不了的事,并且可能已经向客户承诺,但他必须被告知悲伤现实是每隔一段时间就会有一些突破性的变化。