很多時候您需要在資料庫中儲存邏輯樹的層次結構。這個問題有很多種實現方式,但最常見的是使用乙個簡單自關聯的表,如下圖所示
如果您對映此表與實體框架您將自動獲得乙個樹狀結構,您需將關係字段重新命名,因為他們被命名為employee和 employee1,將他們重新命名微parent和childs,這樣使結構更清晰和易於理解。
現在我建立乙個簡單控制台應用程式,以遞迴的方式列印整棵樹,**如下:
public上面的print方法以遞迴的方式列印整棵樹的所有節點,接下來在main方法中呼叫該方法static
void print(employee employee, int32 level)
", new string('-', level), employee.name);
if (!employee.childs.isloaded)
foreach (employee child in employee.childs)
}
public實體框架在記憶體中構建整個樹,輸出結果如下:static
void main()
}
test修改樹的結構很簡單,你只需要修改它的父節點就可以了。**如下:alkampfer
-guardian
--clark
--john
-joe
employee clark = context.employee刪除節點時有點麻煩,因為刪除包含子節點的節點時,ef會報告異常。所以最好的做法是建立乙個方法遍歷所有子節點。.where(e => e.name == "clark").first();
employee joe = context.employee
.where(e => e.name == "joe").first();
clark.parent = joe;
public呼叫以上方法,遍歷所有子節點完成刪除。static
void visit(employee employee, actionvisitaction)
using (testentities context = new testentities())值得注意的是以上方法存在效能問題!
外語水平有限,大家可以直接看原文
原文:
管理 管理語錄
1.作為領導者,乙個人必須具有表達清楚準確的自信,確信組織中的每乙個人都能理解事業的目標.2.在任何情況下,責任都有乙個定量,任何一方如果承擔過多的責任,另一方就會相應地減少承擔等量責任。3.管理的藝術在於溝通的技巧和真誠 4.管理是一種嚴肅的愛 5.管理就是讓別人完成事情 6.黑貓,白貓,能抓老鼠...
檔案管理 使用者管理 磁碟管理
檔案管理 檔案管理是作業系統的五大職能之一,主要涉及檔案的邏輯組織和物理組織,目錄的結構和管理。所謂檔案管理,就是作業系統中實現檔案統一管理的一組軟體 被管理的檔案以及為實施檔案管理所需要的一些資料結構的總稱 是作業系統中負責訪問和管理檔案資訊的機構 從系統角度來看,檔案系統 是對檔案 儲存器的儲存...
檔案管理 使用者管理 磁碟管理
1.檔案管理 主目錄 使用者第一次登入linux系統時的工作目錄即為使用者的主目錄。絕對路徑名 絕對路徑名都是以 開頭,表示根目錄。相對路徑名 指的是從工作目錄到某個檔案的路徑名。建立目錄 使用 p引數,則mkdir命令可以同時建立父目錄m子目錄s。刪除目錄 命令rmdir用來刪除目錄。rmdir不...