Inquiridor
Localização dos arquivos Models e Repositórios

Discussão Geral
-
Bom dia.
A pasta Models ficam os arquivos dos modelos, OK, porém vejo sempre em sites que aconselham criar arquivos de Repositórios.Modelo Livro então criar um LivroRepository. Onde geralmente fica gravado o arquivo LivroRepository? Junto com Models? Pensei em criar uma subpasta Models\Repositories mas quero saber como o mercado funciona. Penso nisso pois se cada tabela terá seu Model então também terá seu Repository. Ficará uma lista imensa, não?
Também o arquivo de conexão DbContext. Onde ele fica? App_Code?
Obrigado!
Todas as Respostas
-
Eu costumo criar um projeto separado com os repositorios pois assim você consegue utiliza-los em qualquer projeto que você tenha, seja ele desktop ou web.
O nome da pasta deixo como repositories mesmo.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
-
Então nessa dll terá os Models e os repositorios e a DbContext?
Outra dúvida Murilo.
Em meu projeto o usuário tem uma combo com as empresas que ele tem permissão de trabalhar. Esse combo ficará no layout principal e não em cada view individual.
Como eu mantenho o preenchimento do combo? Pensei nas opções:
1) No login eu gravar na Sessão algo tipo Session["EmpresasPermitidas"]. E daí na View do layout eu montar automaticamente com base na sessão.
2) Criar um Helper @ComboEmpresasPermitidas e neste helper acessar o repositorio ou a sessino e pegar. Não sei se é um desvio de regra por o Helper acessar os Models direto.
Penso em criar Helper para varios casos onde serão dados exlclusivods para o usuario, conforme permissoes. Mas não sei se foge a regra o Helper acessar os dados diretamente. Por exemplo penso em criar um @MenuPrincipal que irá ver as permissões do usuário e montar o menu corretamente.
Obrigado!
-
- Quanto melhor a separação melhor, ou seja, se você colocar os models em outro projeto fica melhor ainda. Só tome cuidado com referências circulares(dois projetos incluirem um ao outro)
- No caso das empresas eu usaria o RenderAction na layout e ai carregava as empresas baseado no usuário logado.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
-
-