WCFExpetionFaultException方法内部出现没有处理的异常:
Missing type map configuration or unsupported mapping.
原代码:
//将返回的model实体集转化为契约实体集
List lisCon = Mapper.Map, List>(list);
Mapper.Map<>改写成Mapper.Dynamic<>
//将返回的model实体集转化为契约实体集
List lisCon = Mapper.DynamicMap, List>(list);
结果:不是想要的,虽能避免直接报错但是类型转化完成之后,集合中没有数据
2> 再次检查代码
Model代码:
public partial class ResultDictionaryTypeEntity
{
public ResultDictionaryTypeEntity()
{
this.ResultDictionaryEntity = new HashSet();
}
public string dictionaryTypeId { get; set; }
public string dictionaryTypeValue { get; set; }
public string dictionaryTypeName { get; set; }
public Nullable operatingTime { get; set; }
public Nullable isDeleted { get; set; }
public virtual ICollection ResultDictionaryEntity { get; set; }
}
上述代码中,最后一句是数据字典主表和从表之间的一种主外键关系,不是实体的属性,问题就出在这里了...
public class DictionaryTypeViewModel
{
[DataMember]
public string dictionaryTypeId { get; set; }
[DataMember]
public string dictionaryTypeValue { get; set; }
[DataMember]
public string dictionaryTypeName { get; set; }
[DataMember]
public Nullable operatingTime { get; set; }
[DataMember]
public Nullable isDeleted { get; set; }
[DataMember]
public virtual ICollection ResultDictionaryEntity { get; set; }
}
在ViewModel中不该出现最后一句的,因为直接将Model代码复制过来,没有仔细去思考查看,导致不是属性的东西当成属性处理了。
正确的ViewModel代码:
public class DictionaryTypeViewModel
{
[DataMember]
public string dictionaryTypeId { get; set; }
[DataMember]
public string dictionaryTypeValue { get; set; }
[DataMember]
public string dictionaryTypeName { get; set; }
[DataMember]
public Nullable operatingTime { get; set; }
[DataMember]
public Nullable isDeleted { get; set; }
}
3.完整代码:
//创建一个转化关系
Mapper.CreateMap();
list = this.CurrentDal.LoadPageItems(pageSize, pageIndex, out total, s => s.resultRateSetID, true).ToList();
//将返回的model实体集转化为契约实体集
List lisCon = Mapper.Map, List>(list);
//返回契约实体集
return lisCon;
总结:对代码要细心查看,少出现粘贴复制,多思考,多总结