/**
  * @param array $excludedPropertyNames
  * @return bool
  */
 public function insert($excludedPropertyNames = array())
 {
     $nameValuePairs = array();
     $properties = $this->entityInstance->getProperties();
     foreach ($excludedPropertyNames as $excludedPropertyName) {
         unset($properties[$excludedPropertyName]);
     }
     unset($excludedPropertyName);
     foreach ($properties as $property) {
         $nameValuePairs[$property->getColName()] = $property->getValue();
     }
     unset($property);
     $insertQuery = new InsertQuery($this->tableName, $nameValuePairs);
     $result = $insertQuery->exec();
     $insertID = $insertQuery->getLastInsertedID();
     if ($insertID) {
         $this->entityInstance->setID($insertID);
     }
     return $result;
 }