Como introduzir tipos de chave primitivos personalizados nos Serviços de Dados WCF (Astoria)

StackOverflow https://stackoverflow.com/questions/2591773

  •  25-09-2019
  •  | 
  •  

Pergunta

Usamos o tipo personalizado para representar identificadores em nosso projeto. Ele tem o TypeConvertor anexado e sempre ajudou na serialização.

Tentei usar os serviços de dados da WCF para expor alguns dados do nosso sistema, mas enfrentei um problema. A Astoria Framework não reconhece a classe como uma entidade, mesmo que eu a decorasse com o atributo [DataServiceKey ("ID")]. Se eu mudar o tipo de propriedade para GUID - ela funciona totalmente :(.

Como ensinar serviços de dados da WCF a entender essa classe simples?

Foi útil?

Solução

Depois de um pouco de pesquisa e uma tonelada de trabalho refletor, descobri que não é possível.

Os serviços de dados da WCF têm suporte de metadados externos monumentais descrito em detalhes por Alex James em muito boa série de Postagens.

No entanto, a criação dos tipos de dados primitivos é proibida e a propriedade -chave da entidade deve ser do tipo primitivo. Além disso, não há gancho de pré e pós-execução disponível para fornecer conversão em tempo de execução e para o tipo de string.

Este e o apoio limitado do LINQ da Nibernate tornam Astoria bastante inutilizável para mim agora. Bruxa é muito triste.

Outras dicas

Enquanto a classe possui um DataServices de ID da propriedade, deve serializar -a em serializar corretamente. Você nem precisa do atributo se a propriedade for nomeada ID. Você viu o exemplo que eu fiz aqui. Além disso, você encontrará uma lista completa de artigos relacionados ao Odata sobre http://www.odataprimer.com. Talvez um deles ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top