我想了解其他人如何应对以下情况。
这不是家庭作业或任何形式的任务。创建示例类是为了更好地说明我的问题,但它确实反映了我们希望得到反馈的现实生活场景。
我们从数据库中检索所有数据并将其放入一个对象中。一个对象代表一条记录,如果数据库中存在多条记录,我们将数据放入记录对象的 List<> 中。
假设我们有以下课程;
public class Employee
{
public bool _Modified;
public string _FirstName;
public string _LastName;
public List<Emplyee_Address> _Address;
}
public class Employee_Address
{
public bool _Modified;
public string _Address;
public string _City;
public string _State;
}
请注意,为清楚起见,类中省略了 Getter 和 Setter。在任何代码警察指责我没有使用它们之前,请注意仅在此示例中省略了。
该数据库有一个员工表和另一个员工地址表。
从概念上讲,我们所做的是创建一个 List 对象来表示数据库表中的数据。我们对该对象进行深度克隆,然后将其绑定到前端的控件。然后我们有两个对象(Orig 和 Final)代表数据库中的数据。
然后用户通过创建、修改、删除记录对“最终”对象进行更改。然后我们希望将这些更改持久化到数据库中。
显然我们希望尽可能优雅,只编辑、创建、删除那些需要它的记录。
我们最终想要比较两个 List 对象,以便我们可以;
查看哪些属性已更改,以便可以将更改持久保存到数据库中。
查看第二个 List<> 中不再存在哪些属性(记录),以便可以从数据库中删除这些记录。
查看新 List<> 中存在哪些新属性,以便我们可以在数据库中创建这些属性。
谁想了解我们如何才能最好地实现这一目标。请记住,我们还需要深入到 Employee_Address 列表以检查是否有任何更改,而不仅仅是顶级属性。
我希望我已经说清楚了,并期待任何建议。