diff --git a/core/includes/menu.inc b/core/includes/menu.inc
index a1c8a01..a49cf26 100644
--- a/core/includes/menu.inc
+++ b/core/includes/menu.inc
@@ -1777,7 +1777,17 @@ function _menu_clear_page_cache() {
  * Updates a list of menus with expanded items.
  */
 function _menu_set_expanded_menus() {
-  $names = db_query("SELECT menu_name FROM {menu_links} WHERE expanded <> 0 GROUP BY menu_name")->fetchCol();
+  $names = array();
+  $result = Drupal::entityQueryAggregate('menu_link')
+    ->condition('expanded', 0, '<>')
+    ->groupBy('menu_name')
+    ->execute();
+
+  // Flattern the resulting array.
+  foreach($result as $k=>$v) {
+    $names[$k] = $v['menu_name'];
+  }
+
   \Drupal::state()->set('menu_expanded', $names);
 }
 
diff --git a/core/modules/menu/lib/Drupal/menu/Form/MenuDeleteForm.php b/core/modules/menu/lib/Drupal/menu/Form/MenuDeleteForm.php
index 709c71b..c30d207 100644
--- a/core/modules/menu/lib/Drupal/menu/Form/MenuDeleteForm.php
+++ b/core/modules/menu/lib/Drupal/menu/Form/MenuDeleteForm.php
@@ -105,8 +105,11 @@ public function submit(array $form, array &$form_state) {
     }
 
     // Reset all the menu links defined by the system via hook_menu_link_defaults().
-    // @todo Convert this to an EFQ.
-    $result = $this->connection->query("SELECT mlid FROM {menu_links} WHERE menu_name = :menu AND module = 'system' ORDER BY depth ASC", array(':menu' => $this->entity->id()), array('fetch' => \PDO::FETCH_ASSOC))->fetchCol();
+    $result = \Drupal::entityQuery('menu_link')
+      ->condition('menu_name', $this->entity->id())
+      ->condition('module', 'system')
+      ->sort('depth', 'ASC')
+      ->execute();
     $menu_links = $this->storageController->loadMultiple($result);
     foreach ($menu_links as $link) {
       $link->reset();
diff --git a/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php b/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php
index d7e51c4..04fbe01 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Menu/BreadcrumbTest.php
@@ -88,10 +88,11 @@ function testBreadCrumbs() {
     );
     $this->assertBreadcrumb('admin/structure/menu/manage/tools', $trail);
 
-    $mlid_node_add = db_query('SELECT mlid FROM {menu_links} WHERE link_path = :href AND module = :module', array(
-      ':href' => 'node/add',
-      ':module' => 'system',
-    ))->fetchField();
+    $mlid_node_add = \Drupal::entityQuery('menu_link')
+      ->condition('link_path', 'node/add')
+      ->condition('module', 'system')
+      ->execute();
+    $mlid_node_add = reset($mlid_node_add);
     $trail += array(
       'admin/structure/menu/manage/tools' => t('Tools'),
     );
diff --git a/core/modules/system/lib/Drupal/system/Tests/Menu/LinksTest.php b/core/modules/system/lib/Drupal/system/Tests/Menu/LinksTest.php
index 52fa21b..61f61b5 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Menu/LinksTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Menu/LinksTest.php
@@ -155,9 +155,7 @@ function testMenuLinkReparenting($module = 'menu_test') {
     // links.
     $links = $this->createLinkHierarchy($module);
     // Don't do that at home.
-    db_delete('menu_links')
-      ->condition('mlid', $links['child-1']['mlid'])
-      ->execute();
+    entity_delete_multiple('menu_link', array($links['child-1']['mlid']));
 
     $expected_hierarchy = array(
       'parent' => FALSE,
diff --git a/core/modules/system/lib/Drupal/system/Tests/Menu/MenuRouterTest.php b/core/modules/system/lib/Drupal/system/Tests/Menu/MenuRouterTest.php
index 72fe06a..822dddd 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Menu/MenuRouterTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Menu/MenuRouterTest.php
@@ -133,13 +133,11 @@ protected function doTestMenuLinkMaintain() {
     menu_link_maintain('menu_test', 'insert', 'menu_test_maintain/2', 'Menu link #2');
 
     // Move second link to the main-menu, to test caching later on.
-    db_update('menu_links')
-      ->fields(array('menu_name' => 'main'))
-      ->condition('link_title', 'Menu link #1-main')
-      ->condition('customized', 0)
-      ->condition('module', 'menu_test')
-      ->execute();
-    menu_cache_clear_all();
+    $menu_links_to_update = entity_load_multiple_by_properties('menu_link', array('link_title' => 'Menu link #1-main', 'customized' => 0, 'module' => 'menu_test'));
+    foreach ($menu_links_to_update as $menu_link) {
+      $menu_link->menu_name = 'main';
+      $menu_link->save();
+    }
 
     // Load front page.
     $this->drupalGet('');
diff --git a/core/modules/toolbar/toolbar.module b/core/modules/toolbar/toolbar.module
index 7217986..bc5b045 100644
--- a/core/modules/toolbar/toolbar.module
+++ b/core/modules/toolbar/toolbar.module
@@ -472,13 +472,12 @@ function toolbar_get_rendered_subtrees() {
     $item = $tree_item['link'];
     if (!$item['hidden'] && $item['access']) {
       if ($item['has_children']) {
-        $query = db_select('menu_links');
-        $query->addField('menu_links', 'mlid');
-        $query->condition('has_children', 1);
+        $query = \Drupal::entityQuery('menu_link')
+          ->condition('has_children', 1);
         for ($i=1; $i <= $item['depth']; $i++) {
           $query->condition('p' . $i, $item['p' . $i]);
         }
-        $parents = $query->execute()->fetchCol();
+        $parents = $query->execute();
         $subtree = menu_build_tree($item['menu_name'], array('expanded' => $parents, 'min_depth' => $item['depth']+1));
         toolbar_menu_navigation_links($subtree);
         $subtree = menu_tree_output($subtree);
