I have been trying to solve this issue for a day now and have got no where so am hoping someone might have solved this before. The closest I found to a solution was How to simply map an NHibernate ISet to IList using AutoMapper and Map IList to ICollection through AutoMapper but still no joy.
I have a data object that looks like:
public class Parent { public virtual ISet Children {get; set; } } And a business object that looks like:
public class ParentDto { public IList Children {get; set; } } Using AutoMapper to map from Data to Business works fine:
... Mapper.CreateMap(); Mapper.CreateMap(); ... ParentDto destination = CWMapper.Map(source); But when I come to Mapping from Business to Data I get the error:
... Mapper.CreateMap(); Mapper.CreateMap(); ... Parent destination = CWMapper.Map(source); Unable to cast object of type 'System.Collections.Generic.List' to ''Iesi.Collections.Generic.ISet'
I added a custom mapping:
Mapper.CreateMap() .ForMember(m => m.Children, o => o.MapFrom(s => ToISet(s.Children))); private static ISet ToISet(IEnumerable list) { Iesi.Collections.Generic.ISet set = null; if (list != null) { set = new Iesi.Collections.Generic.HashedSet(); foreach (T item in list) { set.Add(item); } } return set; } But I still get the same error. Any help would be greatly apriciated!