Управление версиями метаданных служб данных OData / WCF - PullRequest
2 голосов
/ 05 июля 2010

Есть ли поддержка версий метаданных в протоколе OData и его реализации служб данных WCF?

Предположим, что у нас есть служба OData, которая предоставляет единственную коллекцию Goods, а тип сущности Goods имеет три свойства: Key (строка), Name (строка) и AvailableSince (строка). Служба уже запущена, и есть некоторые потребители, которые используют эту схему метаданных. Затем мы хотим обновить тип сущности Goods - например, заменить свойство AvailableSince (string) чем-то другим или изменить его тип со строки на datetime - чтобы у нас было две версии метаданных, и потребители, которые зависят от первой версии метаданных, не сможет отправлять правильные запросы в соответствии со схемой 2-х метаданных.

Есть ли способ предоставить обе версии метаданных в рамках одного сервиса? Если да, то как потребитель может указать версию метаданных в запросе и как их следует обрабатывать на стороне WCF?

Спасибо всем заранее.

Ответы [ 2 ]

4 голосов
/ 21 июля 2010

Краткий ответ: НЕТ.

Для большинства изменений метаданных требуется либо новая служба, либо разрыв существующих клиентов.

Если существующий набор клиентов важен, наша общая рекомендация - создать новую услугу ...

т.е. что-то вроде:

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

Alex

Менеджер программ OData

0 голосов
/ 16 декабря 2012

В этой последней статье описывается, для каких изменений данных требуется новая версия службы, а какие не требуют обновления службы.

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

...