public ISchemaBase Find(String _FullName) { try { Enums.ObjectType type = AllObjects.GetType(_FullName); string parentName = ""; switch (type) { case Enums.ObjectType.Table: return(Tables[_FullName]); case Enums.ObjectType.StoreProcedure: return(Procedures[_FullName]); case Enums.ObjectType.Function: return(Functions[_FullName]); case Enums.ObjectType.View: return(Views[_FullName]); case Enums.ObjectType.Assembly: return(Assemblies[_FullName]); case Enums.ObjectType.UserDataType: return(UserTypes[_FullName]); case Enums.ObjectType.TableType: return(TablesTypes[_FullName]); case Enums.ObjectType.XMLSchema: return(XmlSchemas[_FullName]); case Enums.ObjectType.CLRStoreProcedure: return(CLRProcedures[_FullName]); case Enums.ObjectType.CLRFunction: return(CLRFunctions[_FullName]); case Enums.ObjectType.Synonym: return(Synonyms[_FullName]); case Enums.ObjectType.FullText: return(FullText[_FullName]); case Enums.ObjectType.Rule: return(Rules[_FullName]); case Enums.ObjectType.PartitionFunction: return(PartitionFunctions[_FullName]); case Enums.ObjectType.PartitionScheme: return(PartitionSchemes[_FullName]); case Enums.ObjectType.Role: return(Roles[_FullName]); case Enums.ObjectType.Schema: return(Schemas[_FullName]); case Enums.ObjectType.Constraint: parentName = AllObjects.GetParentName(_FullName); return(Tables[parentName].Constraints[_FullName]); case Enums.ObjectType.Index: parentName = AllObjects.GetParentName(_FullName); type = AllObjects.GetType(parentName); if (type == Enums.ObjectType.Table) { return(Tables[parentName].Indexes[_FullName]); } return(Views[parentName].Indexes[_FullName]); case Enums.ObjectType.Trigger: parentName = AllObjects.GetParentName(_FullName); type = AllObjects.GetType(parentName); if (type == Enums.ObjectType.Table) { return(Tables[parentName].Triggers[_FullName]); } return(Views[parentName].Triggers[_FullName]); case Enums.ObjectType.CLRTrigger: parentName = AllObjects.GetParentName(_FullName); type = AllObjects.GetType(parentName); if (type == Enums.ObjectType.Table) { return(Tables[parentName].CLRTriggers[_FullName]); } return(Views[parentName].CLRTriggers[_FullName]); } return(null); } catch { return(null); } }