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而無讀取。


沒有留言:

張貼留言

VS CODE離線安裝套件方式-續

去年 vscode離線安裝 powershell nupkg 今年在一台無外網的 windwos 2025上安裝時遇到了powershell版本一直讀取到了5.1的版本,鬼打牆了一下午,在VM還原重測測了好幾回,應該是可行了。 將下載到的免安裝powershell 解壓縮到...