これまで、すべての C# データベース駆動型アプリケーションでアクティブ レコードを使用してきました。しかし今、私のアプリケーションでは、永続化コードをビジネス オブジェクトから分割する必要があります。Martin Fowler のデータ マッピング パターンに関する多くの投稿を読みましたが、このパターンに関する知識はまだ非常に限られています。
次の例を使用してみましょう。
Customer と CustomerParameters の 2 つのテーブルがある場合。CustomerParameters テーブルには、新しい Customer を作成するためのデフォルトの Customer 値が含まれています。
次に、すべての Customer 永続性を処理する CustomersMapper クラスを作成する必要があります。My Customer および CustomersList クラスは、顧客データを永続化するために、このマッパー クラスと連携します。
次の質問があります。
特定のビジネスルールに違反することなく、生データを TO & FROM my Customer クラスからマッパーに転送するにはどうすればよいですか? DTOの?
複数の顧客のデータを更新およびロードするために、Mapper クラスに SaveAll および LoadAll メソッドを含めることは許容されますか? その場合、SaveAll の場合、マッパーはデータを更新または挿入するタイミングをどのように知るのでしょうか?
Customer マッパー クラスは、CustomerParameters テーブルからもデフォルト値を取得しますか? それとも CustomerParameters マッパーを作成した方がよいでしょうか?
AO/R マッパー ツールは実際にはここにはありません。私が使用しているデータベースはトランザクション型で、独自のマッパー パターンを作成する必要があります。
アイデアやコメントは大歓迎です。