public IEnumerable <object> GetOwnedChildren(bool bRecursive) { //return Reflection.GetOwnedChildren(this, bRecursive); var iepsa = this as IEntityPostSerializationActions; foreach (var itemsList in iepsa.GetOwnedChildrenLists()) { if (itemsList != null) { foreach (var item in itemsList) { yield return(item); if (bRecursive) { IEntityBase entityBase = item as IEntityBase; if (entityBase != null) { foreach (var childItem in entityBase.GetOwnedChildren(bRecursive)) { yield return(childItem); } } } } } } }