1

既存のLinq2Sqlデータアクセスライブラリを置き換える目的で、MicrosoftのEntity Framework(EF)の調査を開始しました。

いくつかのサンプルプロジェクトをたどっているときに、「コード生成アイテムの追加」(デザイナー画面のコンテキストメニュー)、特に「EF5.xDbContextGenerator」テンプレートに出くわしました。

このテンプレートは、モデルのいくつかの単純な(POCO)クラスオブジェクトを生成します。

私の全体的な構造では、これらのクラスを別のプロジェクト/アセンブリに抽出/移動して、汎用リポジトリからそれらを参照できるようにします。つまり、アプリケーションのデータアクセス層をEFエンティティデータモデルから分離します。

これは可能ですか、それとも各クラスオブジェクトのマップを手動で作成する必要がありますか(例:.ToDomainModel()、. FromDomainModel())。

これがばかげた質問である場合はお詫びします。私の弁護では、私はEFに不慣れであり、データ駆動型ドメインの概念についても理解しています。

4

1 に答える 1

1

可能ですが、自動魔法の一部が失われます。自動生成されたアイテムはT4テンプレートです。それを開くと、ファイルへの最初の相対パスのどこかにあり.edmxます。.edmxテンプレートを移動する場合は、生成に使用するファイルを指すようにパスを適宜更新する必要があります。

欠点は、テンプレートを別の場所に移動すると、.edmxファイルの保存時にクラスの自動再生成が中断されることです(ただし、解決策を検索しなかったため、機能させることができる可能性があります)。そのため、EDMXファイルに変更を保存するたびに、カスタムツール(.ttファイルのコンテキストメニューの項目)を手動で実行する必要があります。

于 2012-08-29T12:44:40.827 に答える