我有一些课程,例如父母和孩子。 Parent有一个Children对象的集合,我使用Linq 2 SQL来持久化它们。问题是:如果Children对象中的某些属性发生更改,我可能需要更新Parent对象,我需要在持久化之前检查它。
我有一个带有Insert(Children子元素)方法的ChildrenRepository,它基本上调用Linq 2 SQL中的InsertOnSubmit(Children子元素)方法,以及从Linq 2 SQL调用SubmitChanges()的Save()方法。如果有任何被修改的Children对象,我想检查Save()方法,如果有的话,那就去做吧。我怎么能这样做?
答案 0 :(得分:2)
如果您引用了子对象:
var changes = context.GetChangeSet();
if (changes.Updates.Contains(yourChildObject))
// Update Parent
否则
changes.Updates.Where(o => o is Child);
答案 1 :(得分:1)
让父级更改域逻辑的一部分,这样您就可以让数据访问层完成它的工作而无需您的干预。这是一个例子
var child = parent.Child(...);
child.Update(...);
和Update的逻辑,假设是双向关系。
班级儿童 { public void Update(...); { 设定孩子的属性; Parent.Property =新值; } }
在这种情况下,您无需担心数据访问内部。