我有这个代码:
DataTable before = GetCustomerTable();
FixCustomerAddresses();
DataTable after = GetCustomerTable();
该FixCustomerAddresses()
方法不会添加或删除Customer
表上的任何行。它只是修改某些现有的行。
我想弄清楚哪些行的列已被修改。有没有办法通过比较之前/之后的数据表来轻松做到这一点?我以前在 StackOverflow 上看到过这个问题,但这种情况略有不同,并且建议的解决方案(Merge + GetChanges; AsEnumerable().Except
)对我不起作用。结果DataTable
要么包含所有行,要么包含行的两倍,要么根本不包含行。DataTable
包含超过 35000 条记录。
FixCustomerAddresses()
只需在数据库上运行一个脚本。没有简单的方法可以确定该方法中哪些行已更改。DataTable 包含主键、一些任意列,当然还有地址字段。