Class HierarchyAttribute
Hierarchy attribute
Inherited Members
Namespace: XData.Mapping
Assembly: XData.docfx.dll
Syntax
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
public sealed class HierarchyAttribute : Attribute
Remarks
Tables can be hierarchically liked to themselves.
On every hierarchical link is possible to build hierarchy table, to simplify tree structure queries.
It's alternative of ORACLE CONNECT BY PRIOR...START WITH construction for other database engines
// Table T_TEST has parent_id field tree linked to test_id (T_TEST's pk)
// Table L_TEST has two fields parent_id and child_id all linked to T_TEST.test_id
// Table L_TEST contains all subtree relations inside T_TEST
// For example: for T_TEST (test_id, parent_id): (1, null) : (2, 1) : (3, 2)
// L_TEST will contain (parent_id, child_id): (1, 1) : (1, 2) : (1, 3) : (2, 2) : (2, 3) : (3, 3)
[DataObject("T"),
DataTable("T_TEST", "T"),
Hierarchy("T", "L_TEST", "parent_id", "parent_id", "child_id"),
Column("TestId", "test_id", typeof(long?), "T", Flags = DataPropertyFlag.Id)]
WARNING! Hierarchy base table (T_TEST in example above) mast contain non complex primary key!
Hint: Possible to describe multiple hierarchies across one table using different tree links
Constructors
| Improve this Doc View SourceHierarchyAttribute(String, String, String, String, String)
Hierarchy attribute
Declaration
public HierarchyAttribute(string source, string treeTableName, string parent, string linkParent, string linkChild)
Parameters
| Type | Name | Description |
|---|---|---|
| String | source | Source table alias |
| String | treeTableName | Link table name |
| String | parent | Source table parent column name |
| String | linkParent | Link table parent column name |
| String | linkChild | Link table child column name |
Exceptions
| Type | Condition |
|---|---|
| XDataRuntimeException | Source table alias cannot be null or empty string |
| XDataRuntimeException | Link table name cannot be null or empty string |
| XDataRuntimeException | Source table parent column name cannot be null or empty string |
| XDataRuntimeException | Link table parent column name cannot be null or empty string |
| XDataRuntimeException | Link table child column name cannot be null or empty string |
Properties
| Improve this Doc View SourceLinkChild
Link table child column name
Declaration
public string LinkChild { get; }
Property Value
| Type | Description |
|---|---|
| String |
LinkParent
Link table parent column name
Declaration
public string LinkParent { get; }
Property Value
| Type | Description |
|---|---|
| String |
Parent
Source table parent column name
Declaration
public string Parent { get; }
Property Value
| Type | Description |
|---|---|
| String |
Source
Source table alias
Declaration
public string Source { get; }
Property Value
| Type | Description |
|---|---|
| String |
See Also
| Improve this Doc View SourceTreeTableName
Link table name
Declaration
public string TreeTableName { get; }
Property Value
| Type | Description |
|---|---|
| String |
Remarks
Tree table contains links from tree node to all subtree nodes.
TypeId
When implemented in a derived class, gets a unique identifier for this Attribute.
Declaration
public override object TypeId { get; }
Property Value
| Type | Description |
|---|---|
| Object | An Object that is a unique identifier for the attribute. |