Cómo simplemente mapear un NHibernate ISet a IList usando AutoMapper
Estoy tratando de usar AutoMapper para asignar desde DTO a mi dominio.
Mis DTO podrían verse así:
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; }
}
Mi dominio se opone a esto:
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; }
}
¿Cómo puedo configurar AutoMapper para poder asignar desde estos Array a los de Set? Parece que AutoMapper está tomando los Array y los está convirtiendo en IList y luego falla en la conversión a ISet.
Aquí está la excepción
Unable to cast object of type 'System.Collections.Generic.List`1[DataTranser.ChildDTO]' to type 'Iesi.Collections.Generic.ISet`1[Domain.ChildDomain]'.
Espero encontrar una forma genérica simple de hacer esto para poder minimizar la infraestructura necesaria para mapear de DTO a Dominio. Cualquier ayuda es muy apreciada.
ACTUALIZAR:
Entonces, ¿cómo modelaría MyDomain -> ChildDomain sin terminar con un modelo de dominio anémico? Entiendo que sin lógica empresarial en MyDomain o ChildDomain, el modelo de dominio actualmente es anémico, pero el objetivo era agregar lógica empresarial a medida que avanzamos. Solo quiero asegurarme de que mi modelo de vista se puede traducir al modelo de dominio y persistir.
¿Qué sugeriría para este escenario, pasar de una asignación simple entre vista y dominio y luego agregar reglas de negocios?
De nuevo, gracias por tu ayuda.