11

最初にEFコードで作成された最初のクエリを高速化できるかどうか疑問に思っています。

2 つのフィールドを含む 1 つのエンティティを含む小さなテスト プログラムを作成しました。最初のクエリは 2.2 秒かかり、2 番目のクエリ (まったく同じ) は 0.006 秒かかります。

私はすでにビューをプリコンパイルしているので、ここでは役に立ちません。問題は、メモリ内でモデルを構築するのに時間がかかることだと思いますが、それほど時間がかかるのでしょうか? そして、ビューのようにこのモデルをプリコンパイルする方法はありますか?

4

2 に答える 2

5

最初のクエリを作成すると、EF 自体が初期化されますが、これには時間がかかります。EF のインフラストラクチャの初期化を高速化するためにやるべきことはあまりないと思いますが、実際に探しているのが、EF の初期化自体ではなく、作成する最初のクエリを高速化することである場合は、EF を強制的に初期化することを試みることができます。最初のクエリを実行する前に。

        using (var db = new MyContext())
        {
            db.Database.Initialize(force: true);
        }
于 2014-02-28T12:26:24.173 に答える
5

This article: Squash Entity Framework startup time with pre-compiled views describes a solution in detail.

It involves using the Optimize Entity Data Model option in Entity Framework Power Tools to generate a pre-compiled .Views class file.

于 2012-06-22T13:47:52.963 に答える