public static CodeProperty GetBackingStoreProperty(this CodeClass parentClass) { if (parentClass == null) { return(null); } return((parentClass.GetGreatestGrandparent(parentClass) ?? parentClass) // the backing store is always on the uppermost class .Properties .FirstOrDefault(x => x.IsOfKind(CodePropertyKind.BackingStore))); }