diff --git a/lib/Drupal/views/ViewStorageController.php b/lib/Drupal/views/ViewStorageController.php
index 305ffa5cf5ae7c542685d2b49cc4b3aea275c05e..702de479fe71b18e0d77467e17927dddc040a837 100644
--- a/lib/Drupal/views/ViewStorageController.php
+++ b/lib/Drupal/views/ViewStorageController.php
@@ -17,10 +17,7 @@ class ViewStorageController extends ConfigStorageController {
    */
   protected function attachLoad(&$queried_entities, $revision_id = FALSE) {
     foreach ($queried_entities as $id => $entity) {
-      foreach ($entity->display as $key => $options) {
-        // Create a ViewsDisplay object using the display options.
-        $entity->display[$key] = new ViewsDisplay($options);
-      }
+      $this->attachDisplays($entity);
     }
   }
 
@@ -97,4 +94,25 @@ public function save(StorableInterface $entity) {
     return $return;
   }
 
+  /**
+   * Overrides Drupal\config\ConfigStorageController::create().
+   */
+  public function create(array $values) {
+    $entity = parent::create($values);
+    $this->attachDisplays($entity);
+    return $entity;
+  }
+
+  /**
+   * @todo
+   */
+  protected function attachDisplays(&$entity) {
+    if (isset($entity->display) && is_array($entity->display)) {
+      foreach ($entity->display as $key => $options) {
+        // Create a ViewsDisplay object using the display options.
+        $entity->display[$key] = new ViewsDisplay($options);
+      }
+    }
+  }
+
 }
\ No newline at end of file