2014-11-23 187 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

相關問題