2012-02-16 13 views
4

、ここで説明したように私は私のモデルのために事前に生成されたビューを追加しました:Entity Frameworkを事前に生成されたビュー

http://blogs.msdn.com/b/adonet/archive/2008/06/20/how-to-use-a-t4-template-for-view-generation.aspx

すべてがコンパイルとコード生成の面で動作しているようだが、私はありませんよ最初のObjectQueryがまだ(SQLを生成する前に)実行するのに3〜4秒かかりますので、EFが実際に私の生成済みビューを使用しているか確かめてください。

EFが事前生成ビューを使用していることを確認するにはどうすればよいですか?

+0

同じ問題が発生しますが、事前生成されたビューでは、平均10回の測定で200ms程度遅くなります。 –

答えて

2

私は同じ問題がありますが、これまでのところ、生成されたビュークラスのコンストラクタにブレークポイントを設定できます。それはヒットします。 GetViewx()メソッドの1つにブレークポイントを設定することもできます。対応する表を照会するとヒットします。

私は、生成されたコンテキストとは別のプロジェクト/アセンブリにあるPOCOを使用しています。生成されたビューは、コンテキストと同じアセンブリ内にあります。最初は私もそれに当たっていなかったので、私はそれらを結ぶ方法を探していました。 ObjectContext.MetadataWorkspace.LoadFromAssembly(...)メソッドを使用したほうがいいです。しかし、ブレークポイントは、アセンブリを明示的にワイヤリングしていないときでも(私はそれを見つけただけで)まだヒットしています。

私は実際に生成されたビューが使用されていることを100%確信していますか?いいえ、かなり小さいモデルで少し遅れています。しかし、かなり確かですか?ええ、私が見る限りです。

+0

興味深いことに、私はEF 5を使用していて、あなたと同じ問題に遭遇しました。違いは私はObjectContext.MetadataWorkspace.LoadFromAssembly(...)メソッドを使用してビュークラスのブレークポイントに到達する必要があります。明示的な配線を省略すると呼び出されず、これを検証しましたDotTraceで。これがバグかどうか分かりません。 –

関連する問題