2011-06-08

Linq DataClasses Cache問題

有一個查詢db的Linq語法,在資料刪除及新增時,使用以下語法都可以得到最新的資料

Dim irt = From p In db.Items_Raw_Type _
Where p.irt_Type.ToUpper = irt_Type.ToUpper _
Order By p.irt_Name Ascending _
Select p


可是當更新完UPDATE時從irt得到的資料居然是一樣
可是開啟SQL PROFILE明明看到有要求連線DB返回的資料也是最新的
這明明就是LINQ自動Cache了吧~
設定中斷點之後,真的是沒有被Update
後來求救Google大神

Dim irt = From p In db.Items_Raw_Type _
Where p.irt_Type.ToUpper = irt_Type.ToUpper _
Order By p.irt_Name Ascending _
Select p
db.Refresh(Data.Linq.RefreshMode.OverwriteCurrentValues, irt)

只要加上一行!得到的結果就會正確了
db.Refresh(Data.Linq.RefreshMode.OverwriteCurrentValues, irt)

Case close

0 comments: