diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
index 636c00b..1a5c036 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
@@ -254,7 +254,7 @@ public function preSaveRevision(EntityStorageInterface $storage, \stdClass $reco
    * {@inheritdoc}
    */
   public function validate() {
-    return $this->getTypedData()->validate();
+    return $this->getTypedDataAdapter()->validate();
   }
 
   /**
@@ -353,7 +353,7 @@ protected function getTranslatedField($name, $langcode) {
         if (isset($this->values[$name][$langcode])) {
           $value = $this->values[$name][$langcode];
         }
-        $entity_adapter = $this->getTypedData();
+        $entity_adapter = $this->getTypedDataAdapter();
         $field = \Drupal::typedDataManager()->getPropertyInstance($entity_adapter, $name, $value);
         if ($default) {
           // $this->defaultLangcode might not be set if we are initializing the
@@ -844,7 +844,7 @@ public function __clone() {
     // it will represent the same entity, only with a different active language.
     if (!$this->translationInitialize) {
       // The translation is a different object, and needs its own TypedData object.
-      $this->typedData = NULL;
+      $this->typedDataAdapter = NULL;
       $definitions = $this->getFieldDefinitions();
       foreach ($this->fields as $name => $values) {
         $this->fields[$name] = array();
@@ -857,7 +857,7 @@ public function __clone() {
         }
         foreach ($values as $langcode => $items) {
           $this->fields[$name][$langcode] = clone $items;
-          $this->fields[$name][$langcode]->setContext($name, $this->getTypedData());
+          $this->fields[$name][$langcode]->setContext($name, $this->getTypedDataAdapter());
         }
       }
 
diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index de1d04f..14b9a3b 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -13,6 +13,7 @@
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Config\Entity\Exception\ConfigEntityIdLengthException;
 use Drupal\Core\Entity\Exception\UndefinedLinkTemplateException;
+use Drupal\Core\Entity\TypedData\EntityDataDefinition;
 use Drupal\Core\Language\Language;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Link;
@@ -47,7 +48,7 @@
    *
    * @var \Drupal\Core\TypedData\ComplexDataInterface
    */
-  protected $typedData;
+  protected $typedDataAdapter;
 
   /**
    * Constructs an Entity object.
@@ -572,19 +573,21 @@ public function toArray() {
   /**
    * {@inheritdoc}
    */
-  public function getTypedData() {
-    if (!isset($this->typedData)) {
-      $class = \Drupal::typedDataManager()->getDefinition('entity')['class'];
-      $this->typedData = $class::createFromEntity($this);
+  public function getTypedDataAdapter() {
+    if (!isset($this->typedDataAdapter)) {
+      $definition = EntityDataDefinition::create()
+        ->setEntityTypeId($this->getEntityTypeId())
+        ->setBundles([ $this->bundle() ]);
+      $this->typedDataAdapter = \Drupal::typedDataManager()->create($definition, $this);
     }
-    return $this->typedData;
+    return $this->typedDataAdapter;
   }
 
   /**
    * {@inheritdoc}
    */
   public function __sleep() {
-    $this->typedData = NULL;
+    $this->typedDataAdapter = NULL;
     return $this->traitSleep();
   }
 
diff --git a/core/lib/Drupal/Core/Entity/EntityInterface.php b/core/lib/Drupal/Core/Entity/EntityInterface.php
index 9280d79..8b3a85c 100644
--- a/core/lib/Drupal/Core/Entity/EntityInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityInterface.php
@@ -389,7 +389,7 @@ public function toArray();
    *
    * @see \Drupal\Core\TypedData\TypedDataInterface
    */
-  public function getTypedData();
+  public function getTypedDataAdapter();
 
   /**
    * The unique cache tag associated with this entity.
diff --git a/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityAdapter.php b/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityAdapter.php
index 7e413b0..1edc74b 100644
--- a/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityAdapter.php
+++ b/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityAdapter.php
@@ -42,23 +42,6 @@ class EntityAdapter extends TypedData implements \IteratorAggregate, ComplexData
   protected $entity;
 
   /**
-   * Creates an instance wrapping the given entity.
-   *
-   * @param \Drupal\Core\Entity\EntityInterface|null $entity
-   *   The entity object to wrap.
-   *
-   * @return static
-   */
-  public static function createFromEntity(EntityInterface $entity) {
-    $definition = EntityDataDefinition::create()
-      ->setEntityTypeId($entity->getEntityTypeId())
-      ->setBundles([ $entity->bundle() ]);
-    $instance = new static($definition);
-    $instance->setValue($entity);
-    return $instance;
-  }
-
-  /**
    * {@inheritdoc}
    */
   public function getValue() {
diff --git a/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityReference.php b/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityReference.php
index 3ecce46..85c4cea 100644
--- a/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityReference.php
+++ b/core/lib/Drupal/Core/Entity/Plugin/DataType/EntityReference.php
@@ -62,7 +62,7 @@ public function getTarget() {
     if (!isset($this->target) && isset($this->id)) {
       // If we have a valid reference, return the entity's TypedData adapter.
       $entity = entity_load($this->getTargetDefinition()->getEntityTypeId(), $this->id);
-      $this->target = isset($entity) ? $entity->getTypedData() : NULL;
+      $this->target = isset($entity) ? $entity->getTypedDataAdapter() : NULL;
     }
     return $this->target;
   }
@@ -92,7 +92,7 @@ public function setValue($value, $notify = TRUE) {
       $this->target = NULL;
     }
     elseif ($value instanceof EntityInterface) {
-      $this->target = $value->getTypedData();
+      $this->target = $value->getTypedDataAdapter();
     }
     elseif (!is_scalar($value) || $this->getTargetDefinition()->getEntityTypeId() === NULL) {
       throw new \InvalidArgumentException('Value is not a valid entity.');
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index 454944c..03a9444 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -1641,7 +1641,7 @@ protected function readFieldItemsToPurge(FieldDefinitionInterface $field_definit
 
     // Create field item objects and return.
     foreach ($items_by_entity as $revision_id => $values) {
-      $entity_adapter = $entities[$revision_id]->getTypedData();
+      $entity_adapter = $entities[$revision_id]->getTypedDataAdapter();
       $items_by_entity[$revision_id] = \Drupal::typedDataManager()->create($field_definition, $values, $field_definition->getName(), $entity_adapter);
     }
     return $items_by_entity;
diff --git a/core/modules/system/src/Tests/Entity/EntityFieldTest.php b/core/modules/system/src/Tests/Entity/EntityFieldTest.php
index 83ec6b5..a0e1bad 100644
--- a/core/modules/system/src/Tests/Entity/EntityFieldTest.php
+++ b/core/modules/system/src/Tests/Entity/EntityFieldTest.php
@@ -416,7 +416,7 @@ protected function checkIntrospection($entity_type) {
     $this->assertEqual($textfield_properties['processed']->getDataType(), 'string', $entity_type .': String processed property of the test-text field found.');
 
     // Make sure provided contextual information is right.
-    $entity_adapter = $entity->getTypedData();
+    $entity_adapter = $entity->getTypedDataAdapter();
     $this->assertIdentical($entity_adapter->getRoot(), $entity_adapter, 'Entity is root object.');
     $this->assertEqual($entity_adapter->getPropertyPath(), '');
     $this->assertEqual($entity_adapter->getName(), '');
@@ -478,7 +478,7 @@ protected function assertIterator($entity_type) {
     }
 
     $fields = $entity->getFields();
-    $this->assertEqual(array_keys($fields), array_keys($entity->getTypedData()->getDataDefinition()->getPropertyDefinitions()), format_string('%entity_type: All fields returned.', array('%entity_type' => $entity_type)));
+    $this->assertEqual(array_keys($fields), array_keys($entity->getTypedDataAdapter()->getDataDefinition()->getPropertyDefinitions()), format_string('%entity_type: All fields returned.', array('%entity_type' => $entity_type)));
     $this->assertEqual($fields, iterator_to_array($entity->getIterator()), format_string('%entity_type: Entity iterator iterates over all fields.', array('%entity_type' => $entity_type)));
   }
 
@@ -505,7 +505,7 @@ protected function assertDataStructureInterfaces($entity_type) {
     // contained properties and getting all contained strings, limited by a
     // certain depth.
     $strings = array();
-    $this->getContainedStrings($entity->getTypedData(), 0, $strings);
+    $this->getContainedStrings($entity->getTypedDataAdapter(), 0, $strings);
 
     // @todo: Once the user entity has defined properties this should contain
     // the user name and other user entity strings as well.
diff --git a/core/modules/views_ui/src/ViewUI.php b/core/modules/views_ui/src/ViewUI.php
index 1068d45..5149f74 100644
--- a/core/modules/views_ui/src/ViewUI.php
+++ b/core/modules/views_ui/src/ViewUI.php
@@ -1137,8 +1137,8 @@ public function getListCacheTags() {
   /**
    * {@inheritdoc}
    */
-  public function getTypedData() {
-    $this->storage->getTypedData();
+  public function getTypedDataAdapter() {
+    $this->storage->getTypedDataAdapter();
   }
 
 }
diff --git a/core/tests/Drupal/Tests/Core/DrupalTest.php b/core/tests/Drupal/Tests/Core/DrupalTest.php
index 4ca6f09..72853d1 100644
--- a/core/tests/Drupal/Tests/Core/DrupalTest.php
+++ b/core/tests/Drupal/Tests/Core/DrupalTest.php
@@ -225,7 +225,7 @@ public function testModuleHandler() {
   }
 
   /**
-   * Tests the typedData() method.
+   * Tests the typedDataAdapter() method.
    */
   public function testTypedDataManager() {
     $this->setMockContainerService('typed_data_manager');
diff --git a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
index 1287b47..5aa1a60 100644
--- a/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/ContentEntityBaseUnitTest.php
@@ -231,7 +231,7 @@ public function testIsNewRevision() {
 
     $this->typedDataManager->expects($this->any())
       ->method('getPropertyInstance')
-      ->with($this->entity->getTypedData(), 'revision_id', NULL)
+      ->with($this->entity->getTypedDataAdapter(), 'revision_id', NULL)
       ->will($this->returnValue($field_item_list));
 
     $this->fieldDefinitions['revision_id']->getItemDefinition()->setClass(get_class($field_item));
@@ -321,11 +321,11 @@ public function testValidate() {
     $non_empty_violation_list->add($violation);
     $validator->expects($this->at(0))
       ->method('validate')
-      ->with($this->entity->getTypedData())
+      ->with($this->entity->getTypedDataAdapter())
       ->will($this->returnValue($empty_violation_list));
     $validator->expects($this->at(1))
       ->method('validate')
-      ->with($this->entity->getTypedData())
+      ->with($this->entity->getTypedDataAdapter())
       ->will($this->returnValue($non_empty_violation_list));
     $this->typedDataManager->expects($this->exactly(2))
       ->method('getValidator')
