2012-02-15 16 views
3

我有點卡在我的db4o家庭作業,我真的不知道如何解決這個問題。DB4O遞歸刪除,它是如何工作的?

這種情況是我有一個簡單的學校學生/學分/課程數據庫。對象具有以下屬性:

學生:

  • ID
  • 名稱

課程:

  • ID
  • 名稱
  • 類型

信用:

  • 學生

現在刪除課程時我也應該刪除的信用卡或具有參考該課程的學分。我已經閱讀了db4o手冊,並試圖理解這個cascadeOnDelete的全部內容,但是我不確定的第一件事是,我必須將cascadeOnDelete設置爲true,以用於課程或信用對象?

接下來的問題是,我應該能夠找到與該課程相關的所有學分。如何在db4o中完全做到這一點?

db4o手冊有一些例子,但是硬編碼值並不是很有用。有沒有辦法在db4o中使用SQL查詢來查找帶有「正確」引用的信用?

我也必須先存儲課程原型,然後找到學分,然後先刪除學分,最後是課程?

我在這裏很困惑,不知道如何繼續,所以任何幫助表示讚賞。謝謝。

回答

1

您可以打開級聯刪除的分貝水平或只對特定的類別:

// 1: For the whole DB 
container.Ext().Configure().CascadeOnDelete(true); 
//2: For a specific type 
container.Ext().Configure().ObjectClass(typeof(Circle)).CascadeOnDelete(true); 

在codeproject.com是article on deleting objects提供進一步的解釋。