【发布时间】:2013-11-27 10:13:14
【问题描述】:
我的上下文:C#、EF、SQL Server 2012。
有 2 个独立的应用程序(服务),我们称它们为 X 和 Y。
- Service X = Web 服务 API,用于我们的外部客户与我们的产品进行通信。
- 服务 Y = 我们使用 google API 进行通信的 Youtube 服务。
X & Y 分开运行,没有通信,但他们可以访问同一个数据库。
示例:外部客户端使用X api 提供数据。它存储在数据库中。
Y 服务查看数据库和进程(上传/同步 youtube 频道中的视频。)
现在业务要求:需要添加额外的数据。
所以 X 的 API 需要扩展。并且数据库需要扩展。
Y 需要更新以处理新数据。
困境是:我们有很多客户。他们都有自己的数据库。我们不想更新他们所有的数据库。
我们没有多个版本的服务Y。所以他们都会得到新版本的服务Y。
所以服务 Y 必须同时使用 OLD 和 NEW 版本的数据库。
Service X 只会更新,当数据库更新时...所以没有问题。
服务 Y 使用实体框架,(不生成代码)。
我如何确保服务 Y 在这两种情况下都能正常工作?:
- OLD:数据库中不存在列。
- 新:数据库中存在列。
有人有什么想法吗????
【问题讨论】:
-
我阅读了这个相关主题:social.msdn.microsoft.com/Forums/en-US/…
标签: c# database entity-framework backwards-compatibility