【发布时间】:2015-02-10 21:08:17
【问题描述】:
我正在使用实体框架来处理服务器应用程序中的数据库。服务器应用程序部署到位于负载均衡器后面的多个节点。我现在发现需要重命名数据库中的一些表和一些表列。问题是我需要在没有任何停机时间的情况下执行此操作。
如果我正在编写自己的数据库层,我可以简单地检查数据库的结构,然后根据数据库结构是否升级运行不同的代码,然后我可能会有 0% 的停机时间。
是否可以在实体框架 4 中执行类似的操作,或者我如何在生产环境中使用实体框架实际更改数据库?我在网上搜索了任何解决方案,但没有成功。我还考虑过在我的应用程序中使用 2 个实体框架实例,但我必须编写在它们之间切换的代码量太多且容易出错。
所以总结一下这个问题: 有没有什么方法可以在生产环境中使用 Entity Framework 4 重命名数据库中的表和列,并且不会造成任何停机?
编辑 我得到的一个新想法是使用引用新表的旧命名方案创建一个视图来代替旧表。我不知道这是否可行。为了让它工作,Entity Framework 需要接受这个视图,就像它是一个普通的表一样。这是个好主意吗?有人用 EF4 尝试过这样的事情吗?
【问题讨论】:
标签: mysql .net c#-4.0 entity-framework-4