【发布时间】:2011-04-05 05:05:36
【问题描述】:
我正处于思考如何用代码做某事的假设阶段,所以我还没有具体的代码示例。但是,假设您有一个实体类型 Person(具有名字、姓氏、出生日期等属性)。当一个人去编辑一个人实体时,你可能只更新一两个字段(可能是全部,但通常不是)。将此视为实施审计跟踪(尽管不是合法的,只是提供信息),即 Tommy 于 2010 年 8 月 28 日将姓氏从 Jones 更改为 Smith。
问题是,LINQ 是否提供了一个接口来比较人员实体上从旧的、现有的与新提交的实体发生的变化?
或者必须循环遍历旧实体和新实体属性并手动对每个属性进行比较?
伪:
For each p as property in person
If oldEntity.p <> newEntity.p then
auditEntry = new auditEntry(oldEntity.p, newEntity.p)
end If
Next
或者,是否有另一种/更好的方法(为部分类中的每个实体实现 IComparable 接口)可以做到这一点?
【问题讨论】:
标签: .net linq-to-sql comparison