@@ -129,10 +129,7 @@ private List<IDynamicObject> BuildItems()
129129 {
130130 if ( ! row . IsDeletedOrDetached ( ) )
131131 {
132- var d = new DataTableDynamicObject ( row )
133- {
134- DynamicObjectPrimaryKey = Guid . NewGuid ( )
135- } ;
132+ var d = new DataTableDynamicObject ( row ) ;
136133 _dataCache . TryAdd ( d . DynamicObjectPrimaryKey , d ) ;
137134 ret . Add ( d ) ;
138135 }
@@ -176,36 +173,32 @@ public override async Task AddAsync(IEnumerable<IDynamicObject> selectedItems)
176173 }
177174 else
178175 {
179- // 原始表格增加新数据
180- var row = DataTable . NewRow ( ) ;
181176 var indexOfRow = 0 ;
182177 var item = selectedItems . FirstOrDefault ( ) ;
183-
184178 if ( item != null && _dataCache . TryGetValue ( item . DynamicObjectPrimaryKey , out var c ) )
185179 {
186180 indexOfRow = DataTable . Rows . IndexOf ( c . Row ) ;
187181 }
188182
183+ // 原始表格增加新数据
184+ var row = DataTable . NewRow ( ) ;
185+
189186 // DataTable 数据源增加数据
190187 DataTable . Rows . InsertAt ( row , indexOfRow ) ;
191188 DataTable . AcceptChanges ( ) ;
192189
193190 // 新建动态类型属性赋值
194- var dynamicObject = new DataTableDynamicObject ( row )
195- {
196- DynamicObjectPrimaryKey = Guid . NewGuid ( )
197- } ;
191+ var dynamicObject = new DataTableDynamicObject ( row ) ;
198192
199193 // 触发 Changed 回调
200194 if ( OnChanged != null )
201195 {
202196 await OnChanged ( new DynamicObjectContextArgs ( [ dynamicObject ] ) ) ;
203197 }
204198
205- // 缓存更新数据
206- _dataCache . TryAdd ( dynamicObject . DynamicObjectPrimaryKey , dynamicObject ) ;
199+ // 重置 _items 重构缓存
200+ _items = null ;
207201 }
208- _items = null ;
209202 }
210203
211204 /// <summary>
@@ -217,7 +210,6 @@ public override async Task<bool> DeleteAsync(IEnumerable<IDynamicObject> items)
217210 if ( OnDeleteAsync != null )
218211 {
219212 ret = await OnDeleteAsync ( items ) ;
220- _items = null ;
221213 }
222214 else
223215 {
0 commit comments