1 に対する回答: 層間でエンティティを転送する最適な方法は、アプリケーションによって異なります。エンティティのシリアル化は可能ですが、私の推奨するソリューションである DTO を作成できますが、これが実際にやりたいことであり、覚えておく必要があります。
「バイナリ シリアル化と WCF データ コントラクト シリアル化を使用する場合、シリアル化されるオブジェクトにオブジェクト グラフ内の関連オブジェクトがある場合、それらのオブジェクトもシリアル化されます。XML シリアル化は関連オブジェクトをシリアル化しません。」
Automapper は、次のようなすべての配管ステートメントを記述するのではなく、プロパティを自動的にマッピングすることによって機能します。
dto.id = entity.id;
...
all other dto assignment operations
配管コードの量が増えるのがすぐにわかるので、特にビュー クラスと dto オブジェクトがある場合は、コードのかなりの量を節約できます。私の知る限り、オートマッパーは、エンティティと DTO の間で名前が同じであり、これらのプロパティのタイプ間でマッピングできる場合にのみ機能します。dto とエンティティがデータを別の型に格納する場合でも、型間の変換のためのマッピング ルールを追加できます。
回答 2: オブジェクトを DTO に変換し、上位層で変更する場合、エンティティ フレームワークを使用してオブジェクトを保存する方法を教えてください。通常は、これらを関連するエンティティに戻すか、新しいエンティティを作成して、これらの変更を送信するだけです。