私はドメイン/ビジネスオブジェクトが問題のドメインに基づいて作成され、物理データモデルまたは永続性構造に関する知識とは独立したドメインモデルアーキテクチャを持っています。今のところ私は軌道に乗っています。なぜなら、それは完全に受け入れられるからです。とドメインモデルとデータモデルの間にインピーダンスの不一致があることがよくあります。 DBAはデータを取得するためにデータベースを作成しました彼らはを必要としましたが、アプリケーション全体をドメインモデルまたはデザインにカプセル化しません。Entity Frameworkで.edmxで自分のドメインモデルオブジェクトを使用する
結果 - 私は自身のドメインモデルオブジェクトのセットを持っています。しかし永続化する必要のあるフィールドはすべてですはドメインモデル内のどこかに存在しますが、必ずしも私の自動生成.edmx POCOエンティティには存在しない形状である必要はありません。だから私はすべてのデータを持っている、それはちょうど完璧なの形状ではなく、自動生成されたPOCOエンティティが作成されているテーブルと同じです。
私は次のような文を作るconverting POCO entity to business entityとEntity Framework 4 with Existing Domain Modelのように、このトピックに関するいくつかの記事を見てきました:
「 ドメインクラスと同じ名前を持つエンティティデータモデルのエンティティを作成しますザ・。エンティティプロパティもドメインクラスと同じ の名前とタイプを持つ必要があります。
What!私のドメインモデルを、データベースのデータモデル/テーブル構造の後にモデル化された正確にのPOCOに再形成させる必要があるのはなぜですか?たとえば、5つのプロパティを持つ私の場合、2はクラス 'A'に、3つはクラス 'B'にありますが、自動生成されたPOCOクラスはそれ自身のクラス 'A'に5つあります。
これは全体的な点です。私はオブジェクトモデルとデータモデルを分離したいが、まだEF 5.0のようなORMを使用してそれらの間をマッピングしたい。私は、そのような名前のクラスやプロパティをデータモデルで作成し、作成する必要はありません。
今EF 5.0での私の.edmxは私のためにPOCOクラスを生成しているが、私の質問はこれらを溶解し、にこのすべてのデータが含まれていますが、単に異なる形状の私ドメインオブジェクトをすべてを再配線する方法ですか?
ところで、コードファーストアプローチを使用して提案されたソリューションはオプションではありませんので、をにしてください。自分のビジネスオブジェクトを.edmxに配線して、EF5を使用して(可能であれば、EF4の例は常にObjectContextからPOCOを継承しているため)いくつかのガイダンスやチュートリアル(ベスト)が必要です。
ありがとうございました。
* "このドメインはEFデザイナーで作成されたことを意味しますか?" *、ドメインクラスはデザイナーを使用せずに最初から作成されていません。 * "次に、コードをまず却下する" *、アプリケーションの制約であり、解雇ではありません。あなたの最後の段落は基本的に状況ですが、それは私の元の状況と質問を本当に再説明しています。私はそれを行う方法の具体例を探しています。私の研究から、概念的なレイヤマッピングを手動で変更するか、デザイナーがこのトリックを行うかもしれないが、私は例を探している。 – atconway
基本的に、デザイナを使用してエンティティを作成します。その後、データベースに接続し、エンティティをデータベースに手動でマップします。私は、低摩擦の方法はデザイナーにデータベースをリバースエンジニアリングし、あなたのビジネスドメインに一致するようにエンティティを変更することだと思う...マッピング作業を簡略化します。 – PilotBob
あなたのやりたいことにマッチする "モデルファースト"のアプローチを使って、私の答えは間違っていました。 – PilotBob