C# 如何先对代码和WebAPI进行版本设置?
我使用实体框架构建实体框架代码优先数据库: 我还将通过对url进行版本控制来实现这一点:C# 如何先对代码和WebAPI进行版本设置?,c#,entity-framework,asp.net-web-api,versioning,C#,Entity Framework,Asp.net Web Api,Versioning,我使用实体框架构建实体框架代码优先数据库: 我还将通过对url进行版本控制来实现这一点: config.Routes.MapHttpRoute( name: "DefaultApiWithAction", routeTemplate: "api/v1/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); 然后我实现了一个“su
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/v1/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
然后我实现了一个“super duper not Backward compatible”(超级复制程序不向后兼容)函数,因此我需要更改我的备份上下文,并在我的WebAPI中加入一些业务逻辑:
我更新url路由上的版本:
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/v2/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
问题:版本1不再工作。它将触发一个错误,声明“支持“xyzContext”上下文的模型自数据库创建以来已更改。
”
我如何处理此方案,以允许无法更新到版本2的客户端向后兼容?要使v2方案正常工作,必须使用如下路由模板:
"api/{v2}/{controller}/{id}"
此错误与路由无关,但它表明您的型号已更改。例如,您在
Person
类中添加了Address
属性。您可以使用保持数据库与模型同步 谢谢你,这是一本有趣的书。我认为此方法取消了“支持“xyzContext”上下文的模型自数据库创建以来已发生更改。”错误?database.SetInitializer(null)//尝试将其添加到Globel.asax文件中