Automapper: Auto collection de cartes de la propriété pour un objet dto
J'ai un objet de domaine
public class ProductModel
{
public long Id {get;set;}
public string Name {get;set;}
public string SerialNumber {get;set;}
}
Unique Dto classe:
public class ProductDto
{
public long Id {get;set;}
public string Name {get;set;}
public string SerialNumber {get;set;}
}
Unique Dto classe qui est une liste de Dto objet:
public class ProductListDto : List<ProductDto>
{
public List<ProductDto> Products;
public ProductListDto()
{
Products = new List<ProductDto>();
}
}
Et j'aimerais carte une liste d'objets de domaine à la liste des Dto des objets tels que les "Produits" de la propriété de ProductListDto objet est AUTOMATIQUEMENT mappé avec une liste de ProductModel objets:
ProductListDto dto = new ProductListDto();
Mapper.CreateMap<ProductModel, ProductDto>();
/* dto = (ProductListDto) Mapper.Map<List<ProductModel>, List<ProductDto>>((List<ProductModel>)model); this code line causes error. It is commented out. */
dto.Products = Mapper.Map<List<ProductModel>, List<ProductDto>>((List<ProductModel>)model); //(*) works OK but need to specify "Products" property
La ligne de code (*) fonctionne bien, mais j'aimerais savoir si il y a une autre façon de AUTOMATIQUEMENT (implicitement) de la carte que les "Produits" de la propriété de dto objet autre que la ligne de code (*)?
Cela signifie que je n'ai pas à écrire du code de la gauche de la ligne de code (*).
Demandez-vous si vous pouvez faire quelque chose comme
Oui, Mightymuke. J'ai essayé, mais j'ai eu d'erreur dans le code comme dto = (ProductListDto) Mappeur.Map<Liste<ProductModel>,<ProductDto>>((List<ProductModel>)le modèle);
dto = Mapper.Map(...)
?Oui, Mightymuke. J'ai essayé, mais j'ai eu d'erreur dans le code comme dto = (ProductListDto) Mappeur.Map<Liste<ProductModel>,<ProductDto>>((List<ProductModel>)le modèle);
OriginalL'auteur user1219702 | 2012-11-20
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin pour créer un mappage. Quelque chose comme ceci devrait fonctionner:
Ensuite dans votre code, vous pouvez le faire:
Ici sont un couple de tests unitaires pour montrer comment cela fonctionne:
Je vous remercie beaucoup.
OriginalL'auteur Mightymuke