修改你的emdx例 MyData.edmx 下的
MyData.Context.cs檔
在初始化時加入設定,如下:
public
MyData
Context() : base("name=
MyData
Context") {this.Database.CommandTimeout = 180; //秒,語法執行timeout時間
((IObjectContextAdapter)this).ObjectContext.CommandTimeout =180
; //這樣也可
//isolation=readuncommitted
((IObjectContextAdapter)this).ObjectContext.ExecuteStoreCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");
}
在SSMS 模擬LOCK狀態
begin transaction
update mytable set mycolymn =1 where myid = 1
然後執行網站上的查詢程式,會發現畫面一直在處理中
在SSMS 執行rollback還原後,網站畫面就可以顯示查詢結果了
在context建立時加入上述設定,就可避掉資料批次異動處理時造成的LOCK而無讀取。
沒有留言:
張貼留言