protected function _setOneProperty($key, $value = null, $expr = false)
        {
            if (!Arrays::is($key)) {
                $key = array($key => $value);
            }

            foreach ($key as $field => $value) {
                $this->_data[$field] = $value;
                $this->_dirty_fields[$field] = $value;

                if (false === $expr and isset($this->_expr_fields[$field])) {
                    unset($this->_expr_fields[$field]);
                } else if (true === $expr) {
                    $this->_expr_fields[$field] = true;
                }
            }

            return $this;
        }