Ho qualcosa di simileCome Automap questo (mappatura membri sub)
public class ProductViewModel
{
public int SelectedProductId { get; set; }
public string ProductName {get; set;}
public int Qty {get; set;}
public List<SelectListItem> Products { get; set};
}
Ho un dominio come questo
public class Product
{
public int ProductId {get; set;}
public string ProductName {get; set;}
public int Qty {get; set;}
}
public class Store
{
public Product() {get; set;}
}
Ora ho bisogno di fare la mappatura.
// nel mio controller
var result = Mapper.Map<ProductViewModel, Store>(Product);
questo non legare nulla dal momento che non riesce a capire come mettere il ProductId in quanto è
Store.Product.ProductId;
La mia mappa è come questo
Mapper.CreateMap<ProductViewModel, Store>().ForMember(dest => dest.Product.ProductId, opt => opt.MapFrom(src => src.SelectedProductId));
ottengo questo errore
Espressione 'dest => Convert (dest.Product.SelectedProductId' must volontà di membro di primo livello. Parametro nome: lambdaExpression
Non so come procedere.
Puoi correggere il tuo codice? Hai un sacco di errori lì dentro. Ad esempio, 'publicTM MyTest()' non è una dichiarazione di classe valida, e 'public MyTest() {get; set;} 'non è una dichiarazione di proprietà valida. –
Stai intenzionalmente mappando dal tuo modello di vista alla tua classe di dominio? Questo non è raccomandato dai ragazzi degli automapper. –
@Brian - Ya. Perchè no? Voglio dire, ho pensato che è l'intero punto di auto mapper. Altrimenti devo fare tutte le cose a mano sconfiggendo lo scopo del mappatore automatico. Quindi potrei anche solo mappare il dominio per visualizzare il modello a mano. – chobo2