2
我有一个对象,其中嵌套部分保存在三个表中。这些课程是与IList <>关系的POCO。与任何框架无关。Linq to SQL:更新聚合根
A_object-> B_object[N]-> C_object[N]
我将此对象发送到存储库进行更新。存储库使用Linq to SQL保存内容。
myRepo.Update(A_object);
第一个循环,处理更新和删除:如果我们的参数对象中找到
foreach (var B in A.B_records)
{ foreach (var C in B.C_records)
{
if(C is in our parameter object)
// update the database object
else
// not found, delete the database object
}
if(B is in our parameter object)
// update the database object
else
// not found, delete the database object
}
循环更新数据库记录,或者如果我们的参数对象没有发现删除的数据库记录。因此更新和删除工作正常。
鉴于我不能修改参数对象的类,**是否有一些模式或机制我可以实现插入缺少B和C对象,而无需再次重新查询数据库?
很明显,我可以创建一个数组找到B和C主键,然后在插入循环中跳过它们,但有没有更好的方式我失踪?
啊,好主意。我知道两个循环太多了。 – 2010-07-27 18:11:45