diff --git a/plugins/views_plugin_query.inc b/plugins/views_plugin_query.inc
index 66680ec..2bcd8c9 100644
--- a/plugins/views_plugin_query.inc
+++ b/plugins/views_plugin_query.inc
@@ -144,4 +144,10 @@ class views_plugin_query extends views_plugin {
     $this->group_operator = strtoupper($type);
   }
 
+  /**
+   * Returns the according entity objects for the given query results.
+   */
+  function get_result_entities($results, $relationship = NULL, $id_alias = NULL) {
+    return FALSE;
+  }
 }
diff --git a/plugins/views_plugin_query_default.inc b/plugins/views_plugin_query_default.inc
index 31b1964..51b3e3d 100644
--- a/plugins/views_plugin_query_default.inc
+++ b/plugins/views_plugin_query_default.inc
@@ -1455,6 +1455,50 @@ class views_plugin_query_default extends views_plugin_query {
       ),
     );
   }
+
+  /**
+   * Returns the according entity objects for the given query results.
+   */
+  function get_result_entities($results, $relationship = NULL, $id_alias = NULL) {
+    $base_table = $this->base_table;
+
+    if (!empty($relationship)) {
+      foreach ($this->view->relationship as $relationship) {
+        if ($relationship->alias == $relationship) {
+          $base_table = $relationship->definition['base'];
+          $base_table_alias = $relationship->alias;
+        }
+      }
+    }
+    $table_data = views_fetch_data($base_table);
+
+    // Bail out if the base-table has not specified the according entity-type.
+    if (!isset($table_data['table']['base']['entity type'])) {
+      return FALSE;
+    }
+    $entity_type = $table_data['table']['base']['entity type'];
+    if (!isset($id_alias)) {
+      $info = entity_get_info($entity_type);
+      $id_key = $info['entity keys']['id'];
+      // Assume the id has been added using the default-alias.
+      $id_alias = !empty($relationship) ? $relationship . '_' . $id_key : $id_key;
+    }
+
+    // Assemble the ids of the entities to load.
+    foreach ($results as $key => $result) {
+      if (isset($result->$id_alias)) {
+        $ids[$key] = $result->$id_alias;
+      }
+    }
+
+    $entities = entity_load($this->entity_type, $ids);
+    // Re-key the array to ensure there is an entry for each result.
+    $result = array();
+    foreach ($ids as $key => $id) {
+      $result[$key] = isset($entities[$id]) ? $entitites[$id] : FALSE;
+    }
+    return $result;
+  }
 }
 
 function views_query_default_aggregation_method_simple($group_type, $field) {
