2017-11-15 4 views
0

MVVMアーキテクチャとWPFアプリケーションを統合し、コードを最初に使用する場合、私はthisのコースに従っています。私自身のアプリケーションでは、最初にデータベースを使用していますが、 個のテーブルしかありません。構造化データベースWPVMアプリケーションでMVVMを使用した最初のモデルクラス

これは私のプロジェクト構造で、3つのレイヤー、Model-View-ViewModelで構成されています。コースでは2つのモデルクラスを作成します。もちろんモデルプロジェクトでコードを最初に使用し、データアクセスプロジェクトでは移行とDbContextを処理します。今

enter image description here

私が最初にデータベースを使用する場合、EFは私のために、すべてのモデルクラスを作成しますが、データベースコンテキストも同様に含まれています。私のEDMXは、このように構成されています

enter image description here

私の質問は、私がそのプロジェクトに配置する必要がある何ですか? UIプロジェクトでは、データサービスを使用して新しいコンテキストを作成するビューモデルを使用していますが、これはUIプロジェクトですべて行うことができます。

答えて

2

私の質問はどのプロジェクトに配置する必要がありますか?

エンティティクラスはモデルプロジェクトに入り、DbContextはデータアクセスレイヤに属します。

Nolek.ttファイルをモデルプロジェクタに移動するには、以下を実行する必要があります。

  • オープンファイルエクスプローラは、(Visual Studioでソリューションを右クリックして、オプションの「ファイルエクスプローラでフォルダを開く」を選択します)とモデルプロジェクトフォルダにNolek.ttファイルを移動します。

  • Visual Studioに戻って、Nolek.ttファイルをモデルプロジェクトに追加します。ソリューションエクスプローラの上部にある[すべてのファイルを表示]アイコンをクリックし、Nolek.ttファイルを右クリックし、[Include Inプロジェクト "オプション。

  • DALプロジェクトからNolek.ttファイルを削除します。

モデルプロジェクト内のテンプレートでモデルを見つけるには、モデルを修正して正しいEDMXパスを指すようにする必要があります。あなたはモデルを見つけるための明示的なパスを指すようにNolek.ttテンプレートファイルにinputFile変数を設定することにより、これを行うことができます:あなたは、ファイルを保存すると

const string inputFile = @"../NolekWPF.DataAccess/Nolek.edmx"; 

は、エンティティクラスは、モデルプロジェクトで生成されなければなりません。はいhttps://blog.magnusmontin.net/2013/05/30/generic-dal-using-entity-framework/

+0

ありがとう!リンクしたブログはちょうどこの投稿にリンクしています。 – Leth

+0

ああ、申し訳ありません。私は私の答えを編集しました。 – mm8

0

個人的には、私は同じプロジェクト内のすべてを、別個の領域ごとに名前空間(フォルダ)で区切ります。

私自身のプロジェクトでは、ViewsとViewModels用のUIフォルダと、モデル用の別のフォルダと、ヘルパークラスなどの他のフォルダの束があります。

+2

が、名前空間の代わりに、アセンブリを使用すると、デザインの違反が見過ごさなります:

詳細については、以下のブログ記事を参照してください。 –

関連する問題