Entity Framework を ORM として使用することを検討していますが、たくさん読んだ後、EF オブジェクトが正確にどこに適合するかについて本当に混乱しています。
私は、ORM の要点は、オブジェクトをリレーショナル データベースにマッピングすることの煩わしさと複雑さを取り除くことであるという印象を受けました。DB をロードして、魔法のようにたくさんのオブジェクトを取得します。CRUD はすべてオブジェクトに対して行われます。DB が変更された場合、マッピングを変更しますが、オブジェクトは同じままです。
これは、システム全体でこれらのオブジェクトを使用すること、およびそれらが動作することを意味します。それらはビジネス オブジェクトです。これは私には理にかなっており、実際にMSは動作を追加する方法を教えてくれます
ただし、データの永続性のみに関心があり、ビジネス オブジェクトを EF と結合するため、EF オブジェクトをビジネス オブジェクトとして使用するべきではないと多くの人が言っているのを読んでいます。彼らは、データ層の抽象化として EF を使用し、それらを実際のビジネス オブジェクトにマッピングすることを提案しています。
これは私には無意味に思えます。ビジネス オブジェクトにマッピングすることになるのに、なぜ別の抽象化レイヤーが必要なのですか? EF プロパティをマップする必要がある場合は、DB 列をマップすることもできます。
ORM の要点は、マッピングを自動化し、バッキング ストアの抽象化として機能することだと思いましたか? 何か不足していますか?
編集:動作とは、ビジネス ロジックを意味します。検証、計算されたプロパティ、ビジネス メソッドなど。