2015年8月11日 星期二

Entity Framework 設定command timeout及isolationlevel

 
修改你的emdx例 MyData.edmx 下的MyData.Context.cs檔
在初始化時加入設定,如下:

 public MyDataContext()
            : base("name=MyDataContext")
{
 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而無讀取。


沒有留言:

張貼留言

自動記錄滑鼠點選操作

為了一個需求,需要人工去點選幾個滑鼠的點選行為,找了幾種工具,覺得GS Auto Clicker最實用,極符合我的需求,尤其是多個固定位置的button點擊,解決了一個很耗時間的工作。 最後設定完預設hotkey F8為啟用鍵,就可以開始自動做工了。再按F8結束工作。 GS Au...