私のドメインには、プロパティにセッターを持たないエンティティがあります(奇妙な特殊ケースを除く)。したがって、すべての値はコンストラクタを介して渡されなければなりません。セッターなしのエンティティをバインドするモデル
問題は、モデルバインダーがフォームフィールドをモデルにバインドしようとすると、CREATEビューのモデルとしてドメインエンティティを使用するようになったため、No parameterless constructor defined for this object
というエラーが発生しています。
これを回避するにはどうすればよいでしょうか。私が考えることができるのは:
- 新しいモデルバインダーを作成しますか?
FormCollection
をエンティティに変換するビューで使用される各エンティティのマッパーを作成します。- エンティティのViewModel表現を作成し、それを元のエンティティクラスにマップしてから、MVCをサービスレイヤに送信します。
- セッターを組み込むようにエンティティをリファクタリングします。
セッターを組み込んでエンティティを開くことは本当にありません。誰にもヒントはありますか?可能な最も簡単で清潔な方法が理想的です。