質問: Dapper(リポジトリ)のようなマイクロORMを使用する場合は、Ref IDを子Pocoに格納するか、Model内のrefオブジェクトのみを格納する必要がありますか?私は両方を保存すると、ルートオブジェクトを更新するときに同期の問題があると思います。 例えば: ``` Class Boat +Id +LakeId +Lake Class Lake +Id +Name ``` LakeIdを変更した場合はどうなりますか?湖は無効な状態になります!誰かが湖を変えて湖を暮らすとどうなるでしょうか? LakeIdは無効な状態になります。 これらの2つのプロパティの同期は、追加の不要な複雑さになります。 LakeIdを変更すると、dbから新しいLake pocoを取得する必要があります。 あなたのプロジェクトでこれをどのように扱いますか(DapperやPetaPocoのようなマイクロORMのみを使用しています)?
回答: すべてのマイクロオーミックはステロイドのデータマッパーです。あなたが書くSQLは気にせず、クエリ結果をオブジェクトにマップするだけです。どんな挿入/更新ヘルパーでも、SQLを使いこなすことなくその操作を簡単に行うことができます。 あなたの心配はマイクロオームとは関係ありません。単にLakeIdに外部キー制約を設定するだけです。ボートにレイクアイランドとレイクの両方がある理由は分かりません。最初にdbスキーマを取得し、次にクエリ結果をマッピングするために必要なオブジェクト(POCO)を取得する必要があります。