如何检查是否存在';s在提交之前更改了Linq2SQL对象

本文关键字:提交 对象 Linq2SQL 检查 何检查 是否 存在 | 更新日期: 2023-09-27 18:20:46

我有一些类,例如Parent和Children。Parent有一个Children对象的集合,我使用Linq2SQL来持久化它们。问题是:如果Children对象中的某些属性发生了更改,我可能需要更新Parent对象,并且在持久化之前需要对其进行检查。

我有一个带有Insert(Children Children)方法的ChildrenRepository,它基本上从Linq2SQL调用InsertOnSubmit(Children Children)方法,以及从Linq2sQL调用SubmitChanges()的Save()方法。我想在Save()方法中检查是否有任何Children对象被修改,如果有,就做这项工作。我怎么能那样做?

如何检查是否存在';s在提交之前更改了Linq2SQL对象

如果您引用了子对象:

var changes = context.GetChangeSet();
if (changes.Updates.Contains(yourChildObject))
    // Update Parent

其他

changes.Updates.Where(o => o is Child);

将父更改作为域逻辑的一部分,这样您就可以让数据访问层完成它的工作,而不需要您的干预。这里有一个的例子

var child = parent.Child(...);
child.Update(...);

以及假设双向关系的Update的逻辑。

类Child{public void Update(…);{设置子属性;Parent.Property=新值;}}

在这种情况下,您不需要担心数据访问内部。