private static T HydrateTable <T>(System.Data.IDataReader reader, string table) where T : TypeTableBase, new() { int index = 0; T typeTable = new T(); typeTable.Id = reader.GetSafeInt32(index++); typeTable.Name = reader.GetSafeString(index++); if (reader.FieldCount == 3) { TypeTableDetails n = typeTable as TypeTableDetails; if (n != null) { n.Description = reader.GetSafeString(index++); } } return(typeTable); }