2012-04-23 39 views
0

我用EF4代碼首創,填補樹,以允許用戶他們的報告整理到文件夾中。 ,因爲它是一個現有的數據庫上BUIT我的模型是不是很簡單。 我有1個數據庫表映射到2個類中的模型(表每層次),其從另一個繼承:繼承的類組織 EF4:不堅持元素

  • :Organization_Report
  • 繼承類:Organization_Folder
    • 基類

      一個文件夾中有一個Children屬性是組織實例的集合。 在組織類,我有一個NumParent部件和導航屬性:家長指向父文件夾。

      頂級元素具有NumParent = NULL。

      我想沒有一個家長(NumParent = NULL)報告被細分電子郵件到一個「虛擬」(即不持久。)文件夾:「沒有組織的元素」。

      換句話說,查詢數據庫時,我必須創建「未組織的元素」文件夾,併爲每個NumParent = Nothing的報告設置Parent。 當保存到數據庫中,我想這個文件夾不添加。

      那是可能的EF?

    +1

    應該回答得含糊不清的問題。目前尚不清楚您的數據模型是什麼以及您想要做什麼。 – 2012-04-23 08:47:18

    +0

    是的,你說得對。我會嘗試更精確 – boblemar 2012-04-23 09:14:15

    回答

    1

    這是不相關的EF - 它是你的應用程序邏輯。 EF只是加載或保存數據的工具。如果你需要額外的東西,你將不得不自己實現。在這種情況下,您可能需要實現處理程序ObjectContext.ObjectMaterialized以將虛擬文件夾分配給已加載的實體並覆蓋ObjectContext.SaveChanges或實現ObjectContext.SavingChanges的處理程序以在保留更改之前刪除該虛擬文件夾 - 這將非常棘手,因爲您必須修復對象樹並使確保沒有對您的虛擬文件夾的引用,否則它將被保留。這也意味着,在您更改數據後,您的數據將不會包含該特殊文件夾。

    如果您使用DbContext API,仍然可以將您的上下文轉換爲ObjectContext並分配處理程序。

    +0

    謝謝。我認爲這將非常棘手。 – boblemar 2012-04-23 10:45:47