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