/// <summary> /// Initialises a new instance of the DbHierarchicalObject class /// </summary> /// <param name="parent">Parent object</param> protected DbHierarchicalObject(DbHierarchicalObject <T> parent) : base() { this.parent = parent; this.child = null; Saved += DbHierarchicalObject_Saved; Deleted += DbHierarchicalObject_Deleted; }
private void DbHierarchicalObject_Deleted(object sender, DbObjectDeletedEventArgs <T> e) { DbHierarchicalObject <T> currentChild = this.child; while (currentChild != null) { currentChild.IsInDatabase = false; currentChild.ResetProperties(); currentChild = currentChild.child; } }
/// <summary> /// Gets the child object that belongs to the specified parent /// </summary> /// <param name="conn">Open connection to the database</param> /// <param name="parent">Parent of the desired child</param> /// <returns>Child object that belongs to the specified parent</returns> internal abstract DbHierarchicalObject <T> GetChildByParent(DbConnection conn, DbHierarchicalObject <T> parent);