public Collections.Tree <T> ToTree(string primaryKeyName, string parentReferenceName) { DataAspectMember primaryKeyMember = this._Aspect[primaryKeyName]; DataAspectMember parentReferenceMember = this._Aspect[parentReferenceName]; Collections.Tree <T> tree = new Collections.Tree <T>(); foreach (T item in this) { object key = parentReferenceMember.GetValue(item); Collections.TreeNode <T> parent = null; if (!ValidationHelper.IsNullOrEmpty(key)) { parent = tree.DepthSearch(primaryKeyMember, key); } if (parent != null) { parent.AddLast(item); } else { tree.AddLast(item); } } return(tree); }
protected override bool CreateAspectFor(ClassAcessor acessor, out DataAspectMember member) { DatabaseColumnAttribute dca = acessor.GetAttribute<DatabaseColumnAttribute>(true); if (dca == null) { member = null; return false; } else { member = new DataAspectMember( acessor, dca.StoredName, dca.ColumnKind == DatabaseColumnKind.Identity, dca.ColumnKind == DatabaseColumnKind.Unique, dca.ColumnKind == DatabaseColumnKind.PrimaryKey, dca.IsNullable, acessor.GetAttribute<Generator>(true)); return true; } }
protected override bool CreateAspectFor(ClassAcessor acessor, out DataAspectMember member) { DatabaseColumnAttribute dca = acessor.GetAttribute <DatabaseColumnAttribute>(true); if (dca == null) { member = null; return(false); } else { member = new DataAspectMember( acessor, dca.StoredName, dca.ColumnKind == DatabaseColumnKind.Identity, dca.ColumnKind == DatabaseColumnKind.Unique, dca.ColumnKind == DatabaseColumnKind.PrimaryKey, dca.IsNullable, acessor.GetAttribute <Generator>(true)); return(true); } }