public function delete($query, array $options = array())
{
return $this->_filter(__METHOD__, compact('query', 'options'), function ($self, $params) {
$query = $params['query'];
$isObject = is_object($query);
if ($isObject) {
$sql = $self->renderCommand('delete', $query->export($self), $query);
} else {
$sql = String::insert($query, $self->value($params['options']));
}
$result = (bool) $self->invokeMethod('_execute', array($sql));
if ($result && $isObject && $query->entity()) {
$query->entity()->sync(null, array(), array('dematerialize' => true));
}
return $result;
});
}