EntityFramework4.xを使用しています。コンテキストの単一インスタンスを使用して単一のビジネス操作でデータベースに繰り返しクエリを実行する場合、EntityFrameworkがクエリごとにデータベース接続を開いたり閉じたりすることを知っています。しかし、私の質問は、3つのクエリすべて(ここでも、コンテキストの同じインスタンス)の接続は、データベースへの同じ接続になるのでしょうか?または、接続プールから別の接続(潜在的に汚染された接続)を取得しますか?
例1:
var conn = (SqlConnection) ((EntityConnection) Context.Connection).StoreConnection;
conn.Open();
var A = new SqlCommand("exec SProcA", conn).ExecuteNonQuery();
conn.Close();
Thread.Sleep(100);
conn.Open();
var B = new SqlCommand("exec SProcB", conn).ExecuteNonQuery();
conn.Close();
Thread.Sleep(100);
conn.Open();
var C = new SqlCommand("exec SProcC", conn).ExecuteNonQuery();
conn.Close();
例2:
// Let Entity Framework manage my connections for me automagically.
var A = Context.TableA.First();
var B = Context.TableB.First();
var C = Context.TableC.First();
これらのシナリオでは、A、B、およびCはデータベースへの同じ実際の接続を使用しますか、それとも接続プールはこれを私から抽象化しますか?