2014-03-25 147 views
0

我有一個datagridview綁定到一個實體框架模型的一部分表。用戶可以編輯datagridview中的數據並將更改保存回SQL。但是,有一個存儲過程也可以在SQL中而不是在datagridview中更改數據。當我嘗試「刷新」datagridview時,linq查詢總是返回舊的緩存數據。下面是我一直在使用,迫使EF返回新的數據試圖代碼:實體框架返回緩存數據

 // now refresh the maintenance datagridview data source 
     using (var context = new spdwEntities()) 
     { 
      var maintData = 
       from o in spdwContext.MR_EquipmentCheck 
       where o.ProdDate == editDate 
       orderby o.Caster, o.Strand 
       select o; 
      mnt_DGV.DataSource = maintData; 
     } 

我已經看到了一些帖子表明這種方法的,但它並沒有爲我工作。在調試時,我可以看到SQL表中有更新的數據,但是當這段代碼運行時,maintData中包含舊數據。

我有一些其他datagridviews這個問題,我解決了它與一個非常醜陋的解決方法。我需要清理所有這些。所以,我非常感謝任何建議。

+0

你實例化一個名爲'context'變量,但然後使用'spdwContext' – Colin

回答

1

您沒有使用剛剛創建的變量context。相反,您的代碼使用其他一些未知來​​源的變量spdwContext。嘗試改變這一行

from o in spdwContext.MR_EquipmentCheck 

from o in context.MR_EquipmentCheck