Strumenti per oggetti di business mapping (oggetti DTO) da entità in asp.net mvc?
-
20-09-2019 - |
Domanda
C'è qualche strumento o l'utilità (assemblaggio mapper) per la costruzione di oggetti di business da parte di soggetti (che si ottengono da DB utilizzando LINQ -> SQL, Entity Framework o qualsiasi altra cosa ..)
in assenza di uno, qualcuno può suggerire il modo migliore che può essere realizzato invece in grado di copiare incollare le proprietà (quello che sto facendo in questo momento) dalle classi di entità.?
Soluzione
Si mappare gli oggetti di business proiettando. Questo funziona anche se gli oggetti di business POCO hanno una forma diversa rispetto le vostre entità.
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.
};
Altri suggerimenti
Questo non risponde direttamente alle vostre domande - ma per i progetti meno complessi Io uso questo prodotto http : //www.devexpress.com/Products/NET/ORM/ (NET Object-Relational Mapper utensili da DevExpress)
Esempio di utilizzo Automapper, cmapper essendo una classe Meldmapping,
cMapper.FillBusinessObject(ViewModel, BusinessObject); // To map from ViewModel to BO
cMapper.FillModel(BusinessObject, ViewModel); // To map from BO to ViewModel
Grazie per il voto:)