【发布时间】:2015-03-21 12:35:10
【问题描述】:
我使用实体框架构建了一个实体框架代码优先数据库:
我也会通过对我的网址进行版本控制来解决这个问题:
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/v1/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
然后我实现了一个“super-duper-not-backwards-compatible”功能,所以我需要更改我的支持上下文并将一些业务逻辑放入我的 WebAPI:
我在url路由上更新版本:
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/v2/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
问题:版本 1 不再有效。它将触发一个错误,指出“The model backing the 'xyzContext' context has changed since the database was created.”
如何以允许无法更新到版本 2 的客户端向后兼容的方式处理这种情况?
【问题讨论】:
标签: c# entity-framework asp.net-web-api versioning