diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index de1d04f..acba96e 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;
@@ -43,7 +44,7 @@
   protected $enforceIsNew;
 
   /**
-   * A typed data object wrapping this entity.
+   * The typed data adapter for the entity.
    *
    * @var \Drupal\Core\TypedData\ComplexDataInterface
    */
@@ -574,8 +575,10 @@ public function toArray() {
    */
   public function getTypedData() {
     if (!isset($this->typedData)) {
-      $class = \Drupal::typedDataManager()->getDefinition('entity')['class'];
-      $this->typedData = $class::createFromEntity($this);
+      $definition = EntityDataDefinition::create()
+        ->setEntityTypeId($this->getEntityTypeId())
+        ->setBundles([ $this->bundle() ]);
+      $this->typedData = \Drupal::typedDataManager()->create($definition, $this);
     }
     return $this->typedData;
   }
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() {
