我想知道在使用 Entity Framework 4(ODAC) 编程时如何安全地更新数据。
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 DB(9i) 中创建这种列?什么是正确的列类型?