在更新记录的值时,我在确定何时使用 e.Row 属性或 cache.SetValue/SetValueExt 时遇到了一些麻烦。在 T200 课程中,pdf 中有一部分内容是这样说的,
要更新数据访问类中在当前字段之后定义的字段,请使用 e.Row 数据记录的属性,如下所示。
ShipmentLine line = e.Row as ShipmentLine;
...
line.Description
Run Code Online (Sandbox Code Playgroud)
要更新数据访问类中在当前字段之前定义的字段,请使用 SetValueExt<>() 方法:
sender.SetValueExt<ShipmentLine.ProductID>(e.Row, GiftCardID);
Run Code Online (Sandbox Code Playgroud)
在这些情况下,当他们说“之前”和“之后”时,他们指的是什么?如果我的 DAC 字段声明按以下顺序排列:
Field1 {get;set;}
Field2 {get;set;}
Field3 {get;set;}
Run Code Online (Sandbox Code Playgroud)
他们的字面意思是,如果我在“Field2.FieldUpdated()”中,我必须像这样更新 Field1 和 Field3?
sender.SetValueExt<ShipmentLine.Field1>(e.Row, "X");
line.Field3 = "X";
Run Code Online (Sandbox Code Playgroud)
另外,对于何时使用哪种方法有一些硬性规定吗?即如果在 RowUpdated 事件中,使用“X”,如果在 FieldUpdated 事件中,使用“Y”。