我的問題是這樣的:DomainService刪除方法不起作用。爲什麼?
Inspections
InspectionItems
在我的關係型數據庫,我需要「級聯」刪除,使得沒有多餘的數據周圍鋪設。例如,如果我刪除了檢查,還需要刪除所有相關項目。
我寫的代碼到域服務類:
public void IDInspectionDelete(string id)
{
var inspections = from a in ObjectContext.Inspections
where a.ID == new Guid(id)
select a;
foreach (Inspection inspection in inspections)
{
var items = from a in ObjectContext.InspectionItems
where a.InspectionID == inspection.ID
select a;
foreach (InspectionItem item in items)
{
DeleteInspectionItem(item);
}
DeleteInspection(inspection);
}
}
然後在我的視圖模型我調用該函數:
context.IDInspectionDelete(id_string);
...這什麼都不做。完全一樣。不是窺視。代碼將逐步通過,沒有錯誤等,但沒有刪除。我打算將它重新寫入我的視圖模型中,並致電
context.Remove(item)
這應該起作用。但我想在DomainService類中使用它。
除非,當然,這是一個很大的禁忌。請解釋爲什麼,如果是的話。
謝謝!
我看不到任何承諾或上下文提交更改。 –
我會讓你的viewmodel像通常那樣去除父檢查記錄。在您的域服務中,自定義行爲以包含子記錄的級聯刪除。吃點你的蛋糕吧。 –
@SteveB啊是的,對不起 - 我也叫context.SubmitChanges(); – xhedgepigx