OData / WCF数据服务元数据版本控制

时间:2010-07-05 13:38:50

标签: wcf metadata odata astoria

OData协议及其WCF数据服务实现是否有任何元数据版本支持?

让我们假设我们有OData服务公开单个Goods集合,而Goods实体类型有三个属性:Key(字符串),Name(字符串)和AvailableSince(字符串)。该服务已在运行,并且有一些消费者依赖此元数据架构。 接下来,我们想要更新Goods实体类型 - 例如用其他东西替换属性AvailableSince(string),或者将其类型从字符串更改为datetime - 所以我们将有两个版本的元数据,并且依赖于第一个元数据版本的消费者将无法根据第二个元数据架构发送正确的请求。

有没有办法在单一服务中提供两种元数据版本?如果是,那么消费者如何在请求中指定元数据版本,以及如何在WCF端处理它?<​​/ p>

提前感谢所有人。

2 个答案:

答案 0 :(得分:4)

简答:NO。

大多数元数据更改都需要新服务或破坏现有客户端。

如果现有客户端很重要,我们的一般建议是创建新服务......

即。类似的东西:

/v1/myservice.svc 
  & 
/v2/myservice.svc

亚历

OData项目经理

答案 1 :(得分:0)

最近的这篇文章描述了需要哪些数据更改新服务版本,以及哪些更改不需要服务更新。

http://msdn.microsoft.com/en-us/library/ee473427.aspx