AutoMapper を使用して DTO からドメインにマップしようとしています。
私のDTOは次のようになります。
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; }
}
私のドメイン オブジェクトは次のようになります。
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; }
}
これらの配列からセットにマップできるように AutoMapper をセットアップするにはどうすればよいでしょうか。AutoMapper が配列を取り、それらを IList に変換してから、ISet への変換に失敗しているようです。
ここに例外があります
Unable to cast object of type 'System.Collections.Generic.List`1[DataTranser.ChildDTO]' to type 'Iesi.Collections.Generic.ISet`1[Domain.ChildDomain]'.
DTOからドメインへのマッピングに必要なインフラストラクチャを最小限に抑えることができるように、これを行うための簡単で一般的な方法を見つけたいと思っています。どんな助けでも大歓迎です。
更新:
では、貧血ドメイン モデルで終わることなく MyDomain -> ChildDomain をモデル化するにはどうすればよいでしょうか? MyDomain または ChildDomain にビジネス ロジックがないと、ドメイン モデルが現在貧弱であることは理解していますが、前進するにつれてビジネス ロジックを追加することが目標でした。ビュー モデルをドメイン モデルに変換して永続化できるようにしたいだけです。
ビューとドメインの間の単純なマッピングから移行し、後でビジネス ルールを追加する場合、このシナリオに対して何を提案しますか?
ご協力いただきありがとうございます。