切実に助けが必要です。
最初にエンティティ フレームワーク コードを使用しており、ドメイン クラスからコンテキストを分割することに関するジュリー ラーマンの提案に従おうとしていますが、エンティティ フレームワークにコンパイルされたビューを認識させることができません。私は多くのことを試しましたが、これまでのところ、コンパイルされたビューのコンストラクターを呼び出すことができますが、最初のクエリには約 15 分かかります (約 329 のエンティティと 600 以上のビューが作成されます)。これにより、最初のクエリでビューを作成する必要があると思います。
手順
既存のデータベースと「モデル プロジェクト」を使用して、Entity Power Tools Beta 3 を実行し、データベースを「コード ファーストでリバース エンジニア」しました。これにより、コンテキスト、ドメイン クラス、およびマッピング (流れるような) クラスが作成されました。参考までに、これを行うのは、コーディング標準に合わせて T4 テンプレートをわずかに変更したためです。
Julie Lerman の Plural Site トレーニング ビデオからの推奨事項を使用して、ドメイン クラス、コンテキスト、およびマッピング クラスを 3 つの個別のプロジェクト (コンテキスト、ドメイン クラス、マッピング) に分けました。モデル プロジェクトからこれら 3 つのプロジェクトにそれぞれファイルをコピーし、名前空間をプロジェクト名と場所に対応するように変更しました。4 つのプロジェクトの結果と名前空間: "MyCompany.DataContext"、"MyCompany.DomainClasses"、"MyCompany.DomainMappings"、"MyCompany.Model"。
「モデル プロジェクト」と Entity Power Tools から生成されたコードを使用して、作成したコンテキスト ファイルを選択し、マウスの右ボタンを押してコンテキスト メニューを表示し、「ビューの生成」を選択しました。これを行うと、「シーケンスに一致する要素が含まれていません」というエラーが表示されます。(問題#1)
OK、うまくいかなかったので、ビューを生成するために「Pawel Kadluczka」による T4 テンプレートを「MyCompany.DataContext」プロジェクトに追加し、そのカスタム ツールを実行して成功しました。ビューはエラーなしで作成されました。ただし、テスト アプリケーションを実行して基本的なクエリを実行すると、最初のクエリに 15 分かかり、生成されたビューのコンストラクター "ViewsForBaseEntitySets1B04A...0F8A()" が呼び出されません。
OK、それもうまくいかなかったので、T4 テンプレートによって作成された「ビュー」ファイルを「MyCompany.DomainClasses」プロジェクトに追加して、クラスでコンパイルされ、テスト アプリケーションを再度実行できるようにしました。今回は、最初のクエリに 15 分かかりましたが、コンストラクターを開始してから約 20 秒以内に "ViewsForBaseEntitySets1B04A...0F8A()" が呼び出されました。これは進歩ですが、バナナではありません。これにより、ビューはコンテキストではなくドメイン クラスと同じアセンブリにある必要があると思われます。 質問: これは正しい仮定ですか? また、それでも 15 分かかったので、Entity Framework がビューを見たようでしたが、気に入らなかったので、再度作成し直しました。 可能?
それで?私は途方に暮れており、頭を壁にぶつけています。プロジェクトを分割した複数のコンテキストでプリコンパイル済みビューを作成するにはどうすればよいですか? ビューはどこに行きますか?私が守っていない名前空間のルールはありますか? 2 つ以上のコンテキストがある場合はどうなりますか?
助けてください。紀元前