Pergunta

No meu banco de dados, há talvez uma dúzia de mesas que representam tipos de pesquisa (Todos têm colunas ID e Nome - Não, eles devem permanecer como mesas separadas, não será normalizado em uma tabela). Estou construindo uma aplicação de administração, onde eu quero um administrador para ser capaz de adicionar / editar / apagar / list todas estas pesquisas. Eu sei que posso voltar a utilizar o modelo, mas há uma maneira mais eficiente para mim escrever isso em um aplicativo asp MVC 2, além de escrever 3 visualizações, 1 controlador para cada tipo de pesquisa, resultando em 48 pontos de vista e 12 controladores?

Foi útil?

Solução

Eu não recomendo remover o acoplamento entre os seus modelos, os controladores e pontos de vista. A idéia por trás desse padrão é que você começa a separar a lógica de negócios a partir da apresentação do fluxo de trabalho. Se você começar a misturar vários modelos nas mesmas views / controladores, ele fica confuso.

Talvez tente fazer o que você está tentando usar uma página mestra e ter seus modelos herdam de uma classe base comum ou algo parecido em vez disso? Desta forma, você pode reutilizar o código sem esmagar-lo nos mesmos arquivos.

Outras dicas

Que tal um mapeamento ORM mais avançado que combina todos eles em uma única entidade?

Eu faria isso com um controlador e uma ação / vista para cada operação CRUD (1x4). Quando e se o esquema muda em um ou mais tabelas de pesquisa, eu iria lidar com isso, então. Caso contrário, acho que o trabalho implicou se você adicionar uma coluna para cada uma das tabelas: você teria que atualizar 48x12 ou qualquer arquivos.

Os detalhes de como fazê-lo depender do seu modelo, mas isso poderia ser feito simplesmente usando ADO.NET e retornar um DataTable ou similar preenchida com uma instrução SQL dinâmica em que o nome da tabela é fornecido pela visão. Você precisaria para se proteger contra injeção de SQL, é claro, se você estivesse usando concatenação.

O Criar vista seria similarily usar o nome da tabela que vem do formulário postado para saber qual tabela para atualização com os dados publicados.

olhar em usar modelos T4 ( decente exemplo ) para construir tudo. Você deve ser capaz de código gen os controladores e pontos de vista com base cada modelo.

Infelizmente, a minha resposta é ir com os 48 pontos de vista e 12 controladores ... tem o código gen configurado de modo que se você adicionar mais tipos de pesquisa, tudo que você precisa fazer é re-executar o código, e boom, controladores e visões são criadas.

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