2014-11-23 152 views
0

我试图与AutoMapperAutoMapper问题时,试图模型映射到视图模型

我从这个数据模型图:

public partial class ModelFromData 
{ 
    public int Id { get; set; } 
    public int LastPosition { get; set; } 

    public virtual SomeModel SomeModel{ get; set; } 
} 

我的视图模型

public class ViewModel 
{ 
    public int Id { get; set; } 
    public int LastPosition { get; set; } 

    public virtual SomeModel SomeModel{ get; set; } 
} 

我Mapper配置:

public class MapperConfig 
{ 
    public static void InitMaps() 
    { 
     Mapper.CreateMap<ModelFromData, ViewModel>(); 
     Mapper.CreateMap<ViewModel, ModelFromData>(); 

     Mapper.AssertConfigurationIsValid(); 
    } 
} 

public static class MapExtensions 
{ 
    public static T To<T>(this Object from) 
    { 
     return Mapper.Map<T>(from); 
    } 
} 

当我尝试自动映射,我得到了如下因素的错误:

缺少类型映射配置或不支持的映射。

映射类型: ModelFromData - >视图模型

enter code here 

Project.Data.ModelFromData - > Project.Web.Models.ViewModel

+0

为什么你想要一个viewModel,如果它是相同的?我的猜测是它不相同,其中一个有可空类型,或者某些东西不匹配。你是否忽略了导致它破裂的类的部分? – 2014-11-24 00:03:39

+0

我的控制器像这样调用映射器:IEnumerable model = service.GetAll()。>(); – Mmmcc 2014-11-24 00:16:46

+0

我的EF请求正在返回一种名为Proxie的类型。也许是因为代理我没有获得automap成功? System.Data.Entity.DynamicProxies .Model_5E43C6C196972BF0754973E48C9C941092D86818CD94005E9A759B70BF6E48E6 – Mmmcc 2014-11-24 00:27:05

回答

0

这是试图映射对象时,你会得到错误在调用“CreateMap”之前。你在用什么框架?我会冒险猜测Asp.Net?

如果是这样,请从global.asax调用您的MapperConfig.InitMaps();方法。好的答案在这里:https://stackoverflow.com/a/6825394/692830

相关问题