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)でこの種の列を作成するにはどうすればよいかわかりません。適切な列タイプは何ですか?