public IEnumerable<Table> GetTablesInheritedFromHierarchy()
{
var retval = new List<Table>();
retval.Add(this);
var count = retval.Count;
do
{
count = retval.Count;
foreach (Table t in ((ModelRoot)this.Root).Database.Tables)
{
var addedItems = new List<Table>();
foreach (var t2 in retval)
{
if (t.ParentTable == t2)
{
if (!retval.Contains(t))
addedItems.Add(t);
}
}
retval.AddRange(addedItems);
}
} while (count != retval.Count);
//Remove this table
retval.RemoveAt(0);
return retval;
}