Como faço para usar propriedades somente leitura definidos no parcial (Entity Framework) aulas sobre ADO.Net Data Services

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

Pergunta

eu têm os objectos que são definidos pela estrutura de entidades que tenham, em seguida, adicionado métodos e propriedades adicionais a via classes parciais. Eu acho que entendo a maioria das limitações ao redor fazendo isso, mas queria confirmar algo que eu estou vendo (ou espero aprender o que eu preciso fazer para fazer este trabalho).

Eu tenho uma classe parcial que, em seguida, tem uma propriedade somente leitura que usa um par de itens para criar um campo calculado que é somente leitura. Ele estava curioso para ver que a propriedade só de leitura não voltou através dos serviços de dados ADO.NET como eu estava esperando / esperando. ou seja, eu estava esperando para ver as propriedades na estrutura de entidade e do imóvel a ser definied em código através da classe parcial vêm através da chamada de serviço de dados.

Este é o caso? São as classes parciais completamente ignorados quando ADO.Net Data Services está consultando para os dados? Se assim o que é a melhor prática para obter uma propriedade de tipo somente leitura para uma entidade (como eu gostaria de evitar que as mesmas classes parciais com diferentes namespaces sendo cortados e colados em ambas as bases de código do lado do lado do cliente e servidor).

Foi útil?

Solução

A partir de um Microsoft Fóruns Post: ( ver post completo aqui )

"Eu acho que você está perguntando" Como adicionar um propriedade somente leitura para um já existente entidade que é exposto pela EF provedor "? Em V1, não há nenhuma boa maneira para fazer isso. Para EF, que carregue o metadados usando os metadados EF API e, portanto, nós não fazemos qualquer reflexão. Daí propriedades adicionais que você pode ter adicionado por meio de uma classe parcial vai ser ignorados.

Astoria ainda não tem um conceito de propriedades somente leitura. Então, se nós expomos quaisquer outras propriedades que não faz parte do modelo, nós não sabemos como lidar com eles de atualizações. Nós não quer perder dados siliently na Também servidor. "

Portanto, parece que esta é uma funcionalidade que não é capaz de ser exposto através de ADO.NET Data Services.

Outras dicas

Existem duas preocupações distintas aqui - o modelo de base (EF) e do WCF / camada mex. Suas propriedades adicionais não fará parte do modelo edmx, mas gostaria de saber se o problema não for mais relacionado com o WCF / mex aspecto.

No entanto, mesmo se ele trabalhou, transferências ADO.NET Data Services dados , não lógica . Assim, contando com propriedades calculadas não é uma opção segura:. O cliente não terá as fórmulas - apenas os valores originais

Para saber qual é, tente fazer a propriedade de leitura / escrita (mesmo se a gravação não faz nada útil), e garantir o valor tem um atributo [DataMember], etc.

Eu acho que o problema é que com a serialização XML, só serializa propriedades com métodos get e set. Caso contrário, não poderia de-serialize. Adicionar um método conjunto vazio à sua propriedade e ver como você ir.

Rob

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