2016-03-28 12 views
2

Alan modeli:ASP.net AutoMapper Eksik tür Harita yapılandırma veya desteklenmeyen haritalama

public class Test 
{ 
    public int Id { get; set; } 
} 

Görünüm modeli:

public class TestViewModel 
{ 
    public int Id { get; set; } 
} 

Global.asax:

AutoMapper.Initialize(); 

AutoMapper:

public static class AutoMapper 
{ 
    public static void Initialize() 
    { 
     CreateModelsToViewModels(); 
     CreateViewModelsToModels(); 
    } 

    private static void CreateModelsToViewModels() 
    { 
     Mapper.Initialize(x => x.CreateMap<Test, TestViewModel>().ReverseMap()); 

     Mapper.AssertConfigurationIsValid(); 
    } 

    private static void CreateViewModelsToModels() 
    { 

    } 
} 

Yapılandırma geçerlidir.

public ActionResult Index(string category) 
{ 
    Test t = _Context.test.First(x => x.Id == 1); 
    var test = Mapper.Map<Test, TestViewModel>(t); //error here 
} 

Sadece veri 1. Hatta bu basit testin bir kimliğine sahip bir satır bana hata Missing type map configuration or unsupported mapping atma tutar olduğunu. Sorun ne olabilir?

Düzenleme: Mapper.Initialize(x => x.CreateMap<Test, TestViewModel>()); için Mapper.Initialize(x => x.CreateMap<Test, TestViewModel>().ReverseMap()); değiştirildi ve yine aynı hata

+0

O kadar doğrulayamıyorum: herkes için

başka senin veritabanı göçler kullanarak eğer aksi takdirde bu kafa karıştırıcı hata alıyorum, paket yöneticisi konsolunda update-database kullandığınızdan emin olun, bu sorunu yaşıyor ama benim tahminim, AutoMapper'i iki kez (ModelToVm ve VmToModel) başlatıyor olmanızdır, bu yüzden ikinci kez aradığınızda başlatımlardan birinin üzerine yazılıyor mu? – Sam

+0

@Sam İleti yayınlandım, hala hata alıyorum. Ayrıca tüm diğer kodumu da açıkladım, bu yüzden sadece automapper'ı bir kez onlar için modeller başlatıyor. –

+0

'ReverseMap()' Bir haritayı iki yoldan oluşturur. Bu yüzden yanlış cevabımı sildim – esiprogrammer

cevap

2

Bu haritaya Bu test sınıfları oluşturduktan sonra (veritabanı göç kullanarak) Ben veritabanını güncellemek için unutmuştu çıkıyor. , Bilgisayar başındayken

AutoMapper Missing type map configuration or unsupported mapping.