Tuesday, September 20, 2005

AcceptChangesDuringUpdate.

ADO.NET 於DataAdapter新增了一個屬性,AcceptChangesDuringUpdate,
這個設定影響了當DataAdapter.Update執行後是否自動執行
AcceptChanges, 其預設值是True,在單一Table Update時這個
預設值是完全正確且方便的,但當對象是parent/child Relation時
就有問題了,一般來說,我們會將Business Logic 寫在
DataAdapter.RowUpdating/RowUpdated中,在
parent/child Relation情況下, child可能於處理Business Logic時
需要讀取parent中的值,但此時parent的AcceptChanges
可能已被呼叫(因為是先Update Parent在Update Child),
造成Child無法取得Parent 的值,而產生Business Logic Error,
這或許是當初設計這個特性時未想到的情況吧.

No comments: