0

winform-application があり、EF 4.2 を使用しています。EF 4.2 では、linq to entity-queries が自動コンパイルされることを読みました。クエリを呼び出すときは、次のことを行います。

 using (BVSEntities bvsContext = new BVSEntities(ConnectionString))
        {
            var person = (from sender in bvsContext.T_Absender
                          where sender.Absender_ID == id
                          select sender).First<T_Absender>();
            return person;
        }

質問: 1) このクエリは自動コンパイルされますか? 2) 自動コンパイルされている場合。使用後に bvsContext が破棄されるため、コンパイルされたクエリは再利用されますか? 3)そうでない場合、どうすれば再利用できますが、同時実行の問題は発生しませんか?

4

1 に答える 1

1

このクエリは自動コンパイルされますか?

いいえ。EF4.2には自動コンパイルされたクエリが含まれていないためです。EF 4.2にはそれらが含まれると想定されていましたが、その後、EFの命名規則が変更されました。自動コンパイルされたクエリは.NET4.5の一部です。EF4.2はEF4.1であり、いくつかの修正が加えられています。

bvsContextは使用後に破棄されるため、コンパイルされたクエリは再利用されますか?

.NET 4.5には、自動コンパイルされたクエリを再利用するための内部キャッシュが含まれています。

于 2012-07-24T10:19:14.377 に答える