列表更新时不应该?

时间:2014-06-09 13:33:05

标签: list each updating

我在我的应用程序中使用静态类。它基本上使用访问数据库,并将自身复制到各种列表。

当用户修改某些数据时,数据是列表中的更新,使用LINQ,如果列表中没有用于修改的条目,则它将向列表中添加新项目。

一切正常。

然而,在第一次数据查询时,我创建了原始列表,基本上是用户表中的所有记录,所以我有一个列表lstDATABASERECORDS

填写此列表后我做了lstDATABASERECORDSCOMPARISON=lstDATABASERECORDS

这使我能够快速检查是否使用更新或追加查询。

但是当我添加到lstDATABASERECORDS时,lstDATABASERECORDSCOMPARISON中也会添加一条记录。

任何人都可以提供建议吗?

1 个答案:

答案 0 :(得分:0)

您正在分配两个变量来引用列表的同一个实例。相反,您可能希望尝试生成列表的克隆以保留增量(遗憾的是,ICloneable在没有为对象定义可克隆语义的额外工作时没有用,或者使用实现IEditableObject的对象并且可能INotifyPropertyChanged用于更改跟踪(那里有一些选项,包括滚动自己的选项)。

没有任何内置于框架(直到EF)复制旧的ADO记录集功能,以自动神奇地生成仅尝试修改更改列的更新查询。