Ferramentas para mapear objetos de negócios (objetos DTO) de entidades no ASP.NET MVC?
-
20-09-2019 - |
Pergunta
Existe alguma ferramenta ou utilidade (montagem do mapeador) para construir objetos de negócios a partir de entidades (que são obtidas do dB usando LINQ -> SQL, Framework de entidade ou qualquer outra coisa ..)
Na ausência de um, alguém pode sugerir a melhor maneira que possa ser realizada, em vez disso, pode copiar a colagem das propriedades (o que estou fazendo agora) das classes de entidade.
Solução
Você mapeia para objetos de negócios projetando. Isso funciona mesmo que seus objetos de negócios POCO tenham uma forma diferente de suas entidades.
var q = from dataObject in Context.DataObjects
select new BusinessObject
{
Name = dataObject.Name,
RelatedObjectName = dataObject.RelatedObject.Name, // works even if RelatedObject is null
DirectChildren = from c in dataObject.Children
select new ChildBusinessObject
{
Name = c.Name
// etc.
}
GrandChildren = from c in dataObject.Children
from gc in c.Children
select new ChildBusinessObject
{
Name = c.Name
// etc.
},
// etc.
};
Outras dicas
Isso não está respondendo diretamente às suas perguntas - mas para projetos menos complicados, eu uso este produto http://www.devexpress.com/products/net/orm/ (.NET Ferramenta Mapper Relacional de Objetos da Devexpress)
Exemplo de uso do AutomApper, sendo o CMAPPER uma classe de meldmapping,
cMapper.FillBusinessObject(ViewModel, BusinessObject); // To map from ViewModel to BO
cMapper.FillModel(BusinessObject, ViewModel); // To map from BO to ViewModel
Obrigado por votar :)