Pergunta

Como implementar o padrão de repositório com linqtoentities como implementar a interface

Foi útil?

Solução

Eu faço o seguinte:

Uma camada de serviço contém meus objetos de negócios.Ele é passado para o repositório por meio de uma inversão de controle (Castle Windor é minha escolha usual).O repositório é responsável pelo mapeamento entre os objetos de negócios e os objetos da estrutura da minha entidade.

As vantagens:Você não tem problemas com o estado do objeto ou com o contexto dos objetos EF porque você os está apenas carregando durante a manipulação de dados no lado do repositório.Isso facilita a situação ao passá-los para WCF/Web-Services.

As desvantagens:Você está perdendo algumas das funcionalidades de rastreamento do Entity Framework, é necessário carregar manualmente o objeto de dados (objetos ef), possivelmente se necessário manualmente para verificações de simultaneidade otimistas (por meio de um carimbo de data/hora no objeto de negócios, por exemplo).

Mas geralmente prefiro esta solução, pois é possível alterar posteriormente o repositório.Isso me permite ter repositórios diferentes (por exemplo, meu objeto de usuário está realmente usando ASPNetAuthenticationRepository em vez de EntityFrameworkRepository), mas para minha camada de serviço é transparente.

Com relação à interface, eu usaria os objetos de negócios da camada de serviço como seus objetos de parâmetro e não deixaria esses objetos EF saírem da camada de repositório.espero que ajude

Outras dicas

Quase gostei disso, exceto pelas coisas de "Castle Windor".Dê uma olhada em openticket.codeplex.com

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