Pergunta

Nos meus repositórios, estou fazendo atribuições aos meus objetos de domínio das consultas da entidade LINQ. Eu tenho então uma camada de serviço para agir sobre esse objeto retornado de repositórios.

Meus objetos de domínio devem estar no repositório como este? Ou meus repositórios devem ser restritos às entidades e acesso de dados e, em vez disso, minha camada de serviço faz atribuições aos objetos de domínio?

Fazer todas as atribuições no repositório parece mais fácil, mas agora a distinção entre meu banco de dados e objetos de domínio não é aparente. O que é prática adequada aqui? Tia

Foi útil?

Solução

IMO se o aplicativo for relativamente simples e você não consegue imaginar arrancar o acesso dos dados e faça as asignamentos no repositório. Mas se você acha que o aplicativo ficará mais complicado no futuro ou que você pode alterar o acesso a dados, mantenha essa funcionalidade fora dos repositórios.

Eu fiz aplicativos com atribuição nos repositórios e outros na camada de serviço e mais um que eu tinha uma camada de conversão separada (não era uma conversão única e os objetos eram complexos).

Uma coisa a lembrar sobre as práticas recomendadas, lá para ajudar, se isso torna as coisas mais difíceis do que não usá -las.

Outras dicas

Eu costumava não gostar. Mas agora geralmente nunca olha para trás. Basicamente, o problema é que, se você precisar alterar para uma fonte de dados externa que estiver estruturada diferente, poderá configurar um novo mapeamento junto com a implementação do código do repositório e ser feito com ele.

Trata -se de mapeamento de dados. Verifique este link: http://www.martinfowler.com/eaacatalog/repository.html

Verifique também esta pergunta relacionada: Confusão de irepository nos objetos retornados. Eu usei um mapeador semelhante, mas o fiz operado no nível iQueryable, que tornou capaz de fazer algumas coisas bastante interessantes enquanto trabalhava com o objeto de domínio após o mapeamento.

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