Como simplesmente mapear um ISet do NHibernate para IList usando o AutoMapper
Estou tentando usar o AutoMapper para mapear do DTO para o meu domínio.
Meu DTO pode ser assim:
public class MyDTO
{
public string Name { get; set; }
public bool OtherProperty { get; set; }
public ChildDTO[] Children { get; set;}
}
public class ChildDTO
{
public string OtherName { get; set; }
}
Meu domínio objetos como este:
public class MyDomain
{
public string Name { get; set; }
public bool OtherProperty { get; set; }
public ISet<ChildDomain> Children { get; set; }
}
public class ChildDomain
{
public string OtherName { get; set; }
}
Como eu configuraria o AutoMapper para poder mapear esses Array's para Set's? Parece que o AutoMapper está pegando os Array's e convertendo-os em IList's e falhando na conversão para ISet.
Aqui está a exceção
Unable to cast object of type 'System.Collections.Generic.List`1[DataTranser.ChildDTO]' to type 'Iesi.Collections.Generic.ISet`1[Domain.ChildDomain]'.
Espero encontrar uma maneira genérica simples de fazer isso para que eu possa minimizar a infraestrutura necessária para mapear de DTO's a Domínios. Qualquer ajuda é muito apreciada.
ATUALIZAR:
Então, como eu modelaria MyDomain -> ChildDomain sem acabar com um modelo de domínio anêmico? Eu entendo que sem lógica de negócios em MyDomain ou ChildDomain o modelo de domínio é anêmico no momento, mas o objetivo era adicionar lógica de negócios à medida que avançamos. Eu só quero garantir que o meu Modelo de Visão possa ser traduzido para o modelo de domínio e persistido.
O que você sugeriria para esse cenário, passando de um mapeamento simples entre visualização e domínio e depois adicionando regras de negócios?
Obrigado novamente por sua ajuda.