5
假設我在我的數據庫中有一個Orders表和一個由VS2008「Linq to SQL Classes」設計器生成的對應模型類。假設我的數據庫中還有一個存儲過程(ProcessOrder
),用於對訂單記錄進行一些處理。如何讓Linq-to-SQL刷新其數據庫記錄的本地副本?
如果我做到以下幾點:
var order = dataContext.Orders.Where(o => o.id == orderId).First();
// More code here
dataContext.ProcessOrder(orderId);
order.Status = "PROCESSED";
dataContext.SubmitChanges();
...然後我會得到一個併發衝突如果ProcessOrder
存儲過程已經修改了訂單(這當然是很可能的),因爲L2S將檢測訂單記錄已更改,並且無法將更改提交到該訂單。
這一切都相當合理,但如果我想要在調用存儲過程後更新訂單記錄怎麼辦?我如何告訴L2S忘記它的緩存副本並從數據庫中刷新它?
完美。我發現我也可以指定特定的訂單記錄,這正是我需要的。謝謝! – 2010-04-07 13:45:48
但它不會更新映射到另一個表的關聯導航集合屬性。它只更新映射到當前實體指向的表的列的屬性。有沒有辦法呢? – RBT 2016-06-18 07:58:36