0
我正在使用Entity Framework 4.x.當使用Context的單個實例在單個業務操作中反覆查詢數據庫時,我知道Entity Framework將打開並關閉每個查詢的數據庫連接。但我的問題是,所有三個查詢(同樣是Context的實例)的連接是否與數據庫具有相同的連接?或者它會從連接池中獲取另一個連接(可能是中毒的連接)?當實體框架重複打開/關閉連接時,它是否是相同的實際連接?
實施例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使用相同真實連接到數據庫或不連接池抽象這離我遠嗎?