Comment puis-je utiliser AutoMapper à la carte de plusieurs sous-classes dans une classe?
Supposons que j'ai trois classes qui sont des sous-classes d'une classe de base:
public class BaseClass
{
public string BaseName { get; set; }
}
public class Subclass1 : BaseClass
{
public string SubName1 { get; set; }
}
public class Subclass2 : BaseClass
{
public string SubName2 { get; set; }
}
public class Subclass3 : BaseClass
{
public string SubName3 { get; set; }
}
Je voudrais une carte à une classe ViewModel qui ressemble à ceci:
public class ViewModel
{
public string BaseName { get; set; }
public string SubName1 { get; set; }
public string SubName2 { get; set; }
public string SubName3 { get; set; }
}
ViewModel
simplement combine les propriétés de toutes les sous-classes et s'aplatit. J'ai essayé de configurer le mappage de la sorte:
AutoMapper.CreateMap<BaseClass, ViewModel>();
Ensuite, j'ai essayé de l'accaparement des données de ma base de données comme suit:
var items = Repo.GetAll<BaseClass>();
AutoMapper.Map(items, new List<ViewModel>());
Cependant, il arrive que seul le BaseName
propriété seront remplies dans la ViewModel
. Comment puis-je configurer AutoMapper de sorte qu'il va mapper les propriétés dans les sous-classes ainsi?
Vouliez-vous dire... (différents sous-classe de noms) public class Subclass2 : BaseClass { public string SubName1 { get; set; } } public class Subclass2 : BaseClass { public string SubName2 { get; set; } } public class Subclass3 : BaseClass { public string SubName3 { get; set; } }
OriginalL'auteur Daniel T. | 2010-12-22
Vous devez vous connecter pour publier un commentaire.
Il semble y avoir un bug ou d'une limitation dans AutoMapper que vous avez besoin correspondant TSource et TDestination hiérarchies. Donnée:
Vous avez besoin de visualiser les modèles:
Le code suivant fonctionne alors:
OriginalL'auteur James Kovacs
Essayez ceci:
OriginalL'auteur sowee15