2015-05-12 15 views
9

Etki alanı sınıflarını model sınıflarına ve viceversa'ya eşlemek için otomatik eşlem kullanıyorum. Bir özelliği şifrelemek/şifresini çözmem gerekiyor. Sorun olmadığı zaman ben Domain için Model map, perefectly çalışır:Automapper ResolveUsing Neden "Bunu Queryable İfade'ye Çözemez"

Mapper.CreateMap<EntityModel, Entity>().ForMember(dest => dest.Password, opt => opt.ResolveUsing(src => this.EncryptString(src.Password))) 

Ama harita Varlık automapper kazasında Model ve atar ne zaman "Expression queryable bu çözülemiyor":

Mapper.CreateMap<Entity, EntityModel>().ForMember(dest => dest.Password, opt => opt.ResolveUsing(src => this.DecryptString(src.Password))) 

belgelerine durumlar gibi
Mapper.CreateMap<Entity, EntityModel>().ForMember(dest => dest.Password, op => op.ResolveUsing<PasswordResolver>().FromMember(x => x.Password)); 


public class PasswordResolver : ValueResolver<object, string> 
{ 
     protected override string ResolveCore(object source) 
    { 
     return "TEST"; 
    } 

} 

cevap

12

, sen sorgulanabilir ifadelerde özel çözücüler kullanamazsınız:: Ben aynı sonucu da bir özel Değeri Çözücü ile denedim

Bunu o Parola özelliği için yapmak istediğim aslında tahmin ediyorum

Mapper.CreateMap<Entity, EntityModel>() 
    .ForMember(dest => dest.Password, op => op.MapFrom(src => "TEST")); 

ama bu örneğin sorununu gidermek için ne yapmanız:

https://github.com/AutoMapper/AutoMapper/wiki/Queryable-Extensions#supported-mapping-options

Ancak, MapFrom kullanabilirsiniz.