1

私たちの環境の1つでは、パワーユーザーが実行時にモデルを作成してデプロイできるコードジェネレーターを構築しました。EF5.0コードファーストを使用していることは言うまでもありません。

私たちのアプリケーション自体にも、内部で使用している多くのモデルがあります。したがって、dbContextは少なくとも80以上のプロパティ(80以上のテーブル)を持つことになります。

私たちが観察しているのは、最初のasp.netアプリケーションの読み込み時間がかなり長く、IISプロセスのメモリ消費量も高い(600MB以上)ことです。

パフォーマンスとメモリ使用量に注意を払うようにEFを構成する方法は何ですか?

更新:固定エンティティのプリコンパイル済みビュー生成を行う唯一の方法のようです。このようにして、プロジェクトでは固定モデルと動的モデルの比率が60%から40%になるため、パフォーマンスを向上させることができます。

コードファーストのコンパイル済みビューを生成するにはどうすればよいですか?

更新:EF Power Toolsを使用して、ビューを生成することができました。同じプロジェクトに2つの別々のコードファーストコンテキストを含めることができるかどうか疑問に思っています。1つは、モデルが固定されているため、ビューを生成する予定です。2番目のモデルは管理者が変更できるため、今のところ、それらのビューを簡単に生成する方法はありません。これは可能だと思いますか?

4

1 に答える 1

1

コード生成モデルとコードファーストモデルの動的な性質を考えると、@ Ladislavが述べたように、非常に特殊な状況があります。「簡単な答え」があるかどうかはわかりません。

通常、ビューは(事前)コンパイル時に作成できます(例:EF Power Tools)。それはあなたのために働くつもりはありません。

「EdmGen.exe」はそのほとんどを実行するユーティリティであるため、自動化することは1つのオプションかもしれませんが、私は試していません。おそらく、あなたが持っているものを考えると挑戦です。

T4テンプレート-他のオプションです。
これは、必要な情報の最良の情報源です- ビュー生成にT4テンプレートを使用する方法

しかし、それがあなたにも役立つかどうかはわかりません。問題は、そもそもEDMXモデルを生成する必要があることです。これは通常、手作業で行われます。

これで、そのためのツールを呼び出すことができます。または、EDMXモデルを「リバースエンジニアリング」して、最初にEFによってどのように構築されるかを確認できます。よくわかりませんが、少し「投機的」です。

これは、EDMXリーダー/ライターで私が知っていることと、それをどのように使用できるかについて私が作成した投稿です。確かではありませんが、おそらくあなたの視野を少し広げます:
)EF4.3コードファーストマイグレーション-__MigrationHistoryモデルを解凍します

metadataまた、を介してコードからアクセスする方法についての詳細情報をリンクすることもできますDbContextが、それがあなたに役立つかどうかはわかりません。おそらく、「事前に」すべての情報が必要です。

そして、EFソースコードを使用して、それがどのように機能するか、そして必要なことを実行する方法をまだ理解していない場合は、それを追跡して理解できるようにする必要があります。


http://blogs.msdn.com/b/adonet/archive/2008/06/20/how-to-use-a-t4-template-for-view-generation.aspxEF4.3
コードファーストマイグレーション-__MigrationHistoryモデルの解凍
http://edmxdom.codeplex.com/(EF 6ですが、重複しています。EF5もあります)

于 2013-04-11T17:32:50.867 に答える