Automapper dans WebAPI Contrôleur
J'ai une Voiture, WebAPI méthode de contrôleur comme ci-dessous - note _carService.GetCarData renvoie une collection de CarDataDTO objets
[HttpGet]
[Route("api/Car/Retrieve/{carManufacturerID}/{year}")]
public IEnumerable<CarData> RetrieveTest(int carManufacturerID, int year)
{
//Mapper.Map<>
var cars = _carService.GetCarData(carManufacturerID, year);
//var returnData = Mapper.Map<CarData, CarDataDTO>();
return cars;
}
CarData est un WebAPI modèle que j'ai créé.
public class CarData
{
public string Model { get; set; }
public string Colour { get; set; }
//other properties removed from brevity
}
CarDataDTO est une classe que j'ai créé des modèles de la Table DB - je récupérer les Données via une procédure stockée appelée avec dapper.
public class CarDataDTO
{
public int CarID { get; set; }
public int CarManufacturerID { get; set; }
public int Year { get; set; }
public string Model { get; set; }
public string Colour { get; set; }
//other properties removed from brevity
}
Si j'ai un point d'arrêt sur le var, les voitures de la ligne dans mon API contrôleur je peux voir, tout est revenu comme prévu et j'ai une collection de CarDTO objets. Cependant, je n'ai pas besoin de l'WebAPI pour retourner le CarDataID, CarID ou de l'Année, c'est pourquoi j'ai créé le CarData API de modèle.
Comment puis-je utiliser facilement Automapper à la carte uniquement les propriétés que je suis concerné?
Faire j'ai besoin de quelque chose à configurer dans mon WebApiConfig classe?
OriginalL'auteur Ctrl_Alt_Defeat | 2017-03-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez installer le AutoMapper nuget package à partir de: AutoMapper
Et puis déclarer une classe comme:
Et ensuite appeler cette dans votre Global.asax comme ceci:
Et si vous souhaitez ignorer certaines propriétés, alors vous pourriez faire quelque chose comme ceci:
Et la manière dont vous utilisez ce pour la cartographie est:
juste mis à jour la réponse pour un exemple d'utilisation
OriginalL'auteur Jinish