Usuário com melhor resposta
Salvando objeto de modelo em Action (Dúvida)

Pergunta
-
Olá pessoal, estou estudando asp.net mvc e desenvolvendo um projeto particular a fins de estudo e tenho algumas duvidas:
OBS: Estou aplicando DDD.
Tenho uma Action em meu controller, que irá salvar dados de um registro (entidade produto em meu modelo).Ai teoricamente receberia um objeto dessa minha entidade e salvaria esta no bd, algo do tipo:
public ActionResult Salvar(Produto produto) { // salva dados return View("Sucesso"); }
A dúvida é: se devo receber direto um objeto do tipo Produto (entidade do modelo), ou é recomendado criar um objeto DTO (com a mesma estrutura de produto), e transferir cada propriedade deste para uma instância de Produto (entidade do modelo) ?
Esta minha classe Produto (entidade), está mapeada com o ORM NHibernate; seriar um problema ao receberdiretamente um objeto deste tipo em meu método ?
Obrigado a todos!Abraços
Felipe
Felipe Oriani - www.felipeoriani.com.br
MCP - Microsoft Certified Professional
...O rio atinge os seu objetivos porque aprendeu a contornas os obstáculos... por André Luiz
Respostas
-
Fala Felipe,
>> Esta minha classe Produto (entidade), está mapeada com o ORM NHibernate; seriar um problema ao receber>> diretamente um objeto deste tipo em meu método ?
Vai ser uma chateação ficar criando DTO's para cada classe... Não acho que seja necessário, nem elegante.Você conhece o TryUpdateModel? Eu faço assim:
public ActionResult Criar(Produto produto)
{
// salva dados
return View("Sucesso");
}
public ActionResult Salvar(Produto produto)
{
// Lê o produto do BD
var produtoExistente = RepositorioProduto.Read(produto.Codigo);
// Atualiza o produto salvo com os dados que foram passados
TryUpdateModel(produtoExistente);
// salva "produtoExistente"
return View("Sucesso");
}
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta Felipe B Oriani terça-feira, 27 de abril de 2010 11:37
Todas as Respostas
-
Fala Felipe,
>> Esta minha classe Produto (entidade), está mapeada com o ORM NHibernate; seriar um problema ao receber>> diretamente um objeto deste tipo em meu método ?
Vai ser uma chateação ficar criando DTO's para cada classe... Não acho que seja necessário, nem elegante.Você conhece o TryUpdateModel? Eu faço assim:
public ActionResult Criar(Produto produto)
{
// salva dados
return View("Sucesso");
}
public ActionResult Salvar(Produto produto)
{
// Lê o produto do BD
var produtoExistente = RepositorioProduto.Read(produto.Codigo);
// Atualiza o produto salvo com os dados que foram passados
TryUpdateModel(produtoExistente);
// salva "produtoExistente"
return View("Sucesso");
}
Forte abraço,
André Borges Medeiros
MCT, MCPD, MCTS
>> Se a resposta solucionar sua dúvida, favor Votar como Útil- Marcado como Resposta Felipe B Oriani terça-feira, 27 de abril de 2010 11:37
-
Valeu André, vou pesquisar a respeito e implementar em minha solução!
Obrigado
Att,
Felipe Oriani - www.felipeoriani.com.br
MCP - Microsoft Certified Professional
...O rio atinge os seu objetivos porque aprendeu a contornas os obstáculos... por André Luiz