我在我的应用程序中使用静态类。它基本上使用访问数据库,并将自身复制到各种列表。
当用户修改某些数据时,数据是列表中的更新,使用LINQ,如果列表中没有用于修改的条目,则它将向列表中添加新项目。
一切正常。
然而,在第一次数据查询时,我创建了原始列表,基本上是用户表中的所有记录,所以我有一个列表lstDATABASERECORDS
。
填写此列表后我做了lstDATABASERECORDSCOMPARISON=lstDATABASERECORDS
这使我能够快速检查是否使用更新或追加查询。
但是当我添加到lstDATABASERECORDS
时,lstDATABASERECORDSCOMPARISON
中也会添加一条记录。
任何人都可以提供建议吗?
答案 0 :(得分:0)
您正在分配两个变量来引用列表的同一个实例。相反,您可能希望尝试生成列表的克隆以保留增量(遗憾的是,ICloneable
在没有为对象定义可克隆语义的额外工作时没有用,或者使用实现IEditableObject
的对象并且可能INotifyPropertyChanged
用于更改跟踪(那里有一些选项,包括滚动自己的选项)。
没有任何内置于框架(直到EF)复制旧的ADO记录集功能,以自动神奇地生成仅尝试修改更改列的更新查询。