Как ввести пользовательские примитивные типы ключей в службы данных WCF (Astoria)

Мы используем пользовательский тип для представления идентификаторов в нашем проекте. К нему подключен TypeConvertor, и он всегда помогал с сериализацией.

Я пытался использовать службы данных WCF для предоставления некоторых данных из нашей системы, но столкнулся с проблемой. Платформа Astoria не распознает класс как сущность, хотя я украсил его атрибутом [DataServiceKey("Id")]. Если я изменю тип свойства на Guid - это полностью сработает :(.

Как научить WCF Data Services понимать этот простой класс?


person Artem Tikhomirov    schedule 07.04.2010    source источник


Ответы (2)



Пока у класса есть свойство Id, DataServices должны правильно сериализовать его. Вам даже не нужен атрибут, если свойство называется ID. Вы видели пример, который я сделал здесь< /а>. Кроме того, вы найдете полный список статей, связанных с OData, на http://www.Odataprimer.com. Может быть, один из них поможет.

person Darrel Miller    schedule 07.04.2010
comment
Нет, это неправда. Для System.Data.Services.Providers.ReflectionServiceProvider свойство ключа должно называться ether ID (с большой буквы D) или EntityNameID. - person Artem Tikhomirov; 07.04.2010
comment
Ничего страшного. Спасибо за ответ в любом случае. - person Artem Tikhomirov; 09.04.2010