0
我想知道如何與實體框架4(ODAC)編程時安全地更新數據。
如何在EF4(ORACLE)處理併發
void DescreaseInventory(int id, int qty){
var order = (from o in context.Orders where o.ID ==id select o).FirstOrDefault;
if(order != null){
if(((Order)order).Qty < qty)
throw new ApplicationException("Not Enough Inventory!!");
else
((Order)order).Qty -= qty;
}
else{
//...some code...
}
//will content.savechange
}
此代碼將是危險的(逃避檢查數量)一旦競爭條件發生。誰知道如何正確地做到這一點?
編輯:現在我知道EF4提供一種機制,使一列作爲跟蹤令牌。但我不知道如何在oracle數據庫(9i)中創建這種列?什麼是適當的列類型?
感謝Ladislav.how約以下步驟:定義一個DB觸發,觸發wiil更新timestamp列,一旦任何變化的行中發生的。將實體類的相應字段的**併發模式**屬性設置爲**固定**。 – user622851
如果您使用我提到的類型,則不需要觸發。數據庫將自動執行此操作。 –
非常感謝,回覆一次嘗試過。 – user622851