Herramientas para el mapeo de objetos de negocio (objetos DTO) de entidades en asp.net mvc?
-
20-09-2019 - |
Pregunta
¿hay alguna herramienta o de la colada (conjunto de mapper) para construir objetos comerciales de entidades (que se obtienen de DB usando linq -> sql, marco de la entidad o lo que sea ..)
en la ausencia de uno, puede alguien sugerir la mejor manera que se puede realizar en lugar puede copiar pegar las propiedades (lo que estoy haciendo en este momento) de las clases de entidad.?
Solución
Asignar a los objetos de negocio mediante la proyección. Esto funciona incluso si los objetos de negocio POCO tienen una forma diferente de sus 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.
};
Otros consejos
Esto no está respondiendo directamente a sus preguntas - pero para proyectos menos complicados que utilizan este producto http : //www.devexpress.com/Products/NET/ORM/ (.NET Object-Relational Herramienta Mapper de DevExpress)
Ejemplo de uso de AutoMapper, cmapper ser una clase Meldmapping,
cMapper.FillBusinessObject(ViewModel, BusinessObject); // To map from ViewModel to BO
cMapper.FillModel(BusinessObject, ViewModel); // To map from BO to ViewModel
Gracias por votar:)