Usuário com melhor resposta
Vinculação de dados com grande quantidade de parâmetros em asp.net

Pergunta
-
Estou implementando um formulário de pesquisa com mais de 70 perguntas e preciso distribuir o conteúdo em algumas páginas, de forma que o preenchimento fique mais organizado para os usuários.
Na hora de vincular os dados, pensei em usar instruções de insert na primeira página (usando SELECT@@ identity para recuperar o id gerado), passando este id como parâmetro para as páginas seguintes e daí para frente usando instruções update.Ocorre que mesmo dividindo em várias páginas, cada metodo insert e update teria muitos parâmetros, tornando o metodo anti-pattern e pouco confiável.
Neste momento me sugeriram usar uma classe-entidade para cada página, e portanto gravando e atualizando o objeto ao final de cada página (com uma classe para cada página).
Gostaria de saber se essa é a abordagem correta, tendo em vista o esforço empregado criando as tabelas no banco de dados, controles no formulário e classes para cada página.
Respostas
-
Olá Rodrigo,
Acredito que o melhor não seja orientar as entidades por página, e sim por bloco de assuntos, pois sua aplicação não pode ser orientada ao design das suas páginas, e sim as suas regras de negócio.
O que eu faria seria:
- Criar uma classe Formulário
- Criar uma associação de Formulário com Cliente/Usuário (depende do seu sistema)
- Tentar agrupar as perguntas do formulário por categorias, que assim se transformarão em classes, para então serem associadas com a classe Formulário.
Talvez isso ajude.
[]s!
Fernando Henrique Inocêncio Borba Ferreira
Microsoft MVP - Data Platform Development
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil- Sugerido como Resposta Priscila Mayumi Sato quarta-feira, 12 de dezembro de 2012 11:12
- Marcado como Resposta Rodrigo Calado quarta-feira, 12 de dezembro de 2012 14:12
Todas as Respostas
-
Olá Rodrigo,
Tudo beleza?
Acredito que dividir as perguntas do formulário em grupos lógicos e entidades subsequentes é uma boa, pois assim vc não terá uma classe mto grande, com mtas propriedades.
E sim, vc pode na primeira tela gerar um ID para a seção do formulário de perguntas e depois atualizando sua tabela com os dados informados pelos usuários.
Ao invés de usar o ID gerado pelo @@Identity, vc pode utilizar um GUID, e basear todas as suas atualizações com base nele.
[]s!
Fernando Henrique Inocêncio Borba Ferreira
Microsoft MVP - Data Platform Development
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil -
Fernando, primeiro obrigado pela resposta.
Não conhecia o conceito de GUID. Vou dar uma pesquisada, mas só de dar uma "googlada" ja me pareceu melhor.
Quanto à abordagem da aplicação, você acha que é por aí mesmo?
Ou seja, um par classe-entidade + página aspx para cada folha do questionário?
-
Olá Rodrigo,
Acredito que o melhor não seja orientar as entidades por página, e sim por bloco de assuntos, pois sua aplicação não pode ser orientada ao design das suas páginas, e sim as suas regras de negócio.
O que eu faria seria:
- Criar uma classe Formulário
- Criar uma associação de Formulário com Cliente/Usuário (depende do seu sistema)
- Tentar agrupar as perguntas do formulário por categorias, que assim se transformarão em classes, para então serem associadas com a classe Formulário.
Talvez isso ajude.
[]s!
Fernando Henrique Inocêncio Borba Ferreira
Microsoft MVP - Data Platform Development
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil- Sugerido como Resposta Priscila Mayumi Sato quarta-feira, 12 de dezembro de 2012 11:12
- Marcado como Resposta Rodrigo Calado quarta-feira, 12 de dezembro de 2012 14:12
-