我正在使用L2S檢查密鑰是否已存在,如果不存在,請創建並插入一個密鑰。同樣的DataContext也用於在同一個C#方法中執行其他查詢。在完成它之後,我正在使用using
關鍵字來處理DataContext。我迷上了sql分析器,看到它會登錄,執行查詢,然後註銷。即使相同的DataContext稍後會執行查詢或更新,它似乎也會這樣做。我認爲datacontext只登錄一次,並在該會話期間執行所有查詢?你多久打電話給SubmitChanges()很重要?或者我錯過了什麼?Linq2Sql datacontext登錄/註銷行爲
嘲笑我所看到的:
using(Datacontext)
{
//Audit Login
var b = DataContext.Table.FirstOrDefault(t=>t.Id == 4);
//RPC: Completed
//Audit Logout
//Audit Login
var x = DataContext.OtherTable.Any(t=>t.Id == 4);
//RPC: Completed
//Audit Logout
}
更新
SQL事件探查器中顯示爲幾百毫秒這些註銷的「持續時間」。那段時間我的應用程序正在等待?
你也可能要更改FirstOrDefault這裏的SingleOrDefault(假設你ID是唯一的......你總是會得到一個結果)。這將從您的SQL問題中刪除「Top 1」。也許你再次獲得一些毫秒 – Pleun 2011-05-26 15:18:43