MVC5. EF com LINQ, Como retornar o objeto de uma lista?

Então estou com um pequeno problema, quero fazer um join com LINQ, faço o Include o meu objeto e tudo mas o erro aparece na View quando vou buscar os @cardapio.Pratos.Nome

Código da minha DAO:

 public IEnumerable<Cardapio> BuscaPorPratos(int idCardapio)
 {
        using(var contexto = new EntidadeConexao())
        {
            var BuscaPratos = contexto.Cardapios.Where(c => c.Id == idCardapio).Include(c => c.Pratos).ToList();
            return BuscaPratos;
        }
 } 

Código do Controller

public ActionResult MostarCardapior(int idCardapio = 2)
{
            CadapioDao dao = new CadapioDao();
            var pratos = dao.BuscaPorPratos(idCardapio);
            return View(pratos);
}

Por fim código da View

@model IEnumerable<FoodTruckCerrado.Models.Cardapio>

<h2>MostarCardapior</h2>

<table class="table table-hover">
    <thead>
        <tr>
            <th>Nome</th>
        </tr>
    </thead>

    @foreach(var cardapio in Model)
    {
        <tr>
            <td>@cardapio.Pratos**.Nome**</td>
        </tr>
    }

Erro gerado

‘IList’ does not contain a definition for ‘Nome’ and no extension method ‘Nome’ accepting a first argument of type ‘IList’ could be found (are you missing a using directive or an assembly reference?)

Coloque pra mim os dois Modelos de classe:

Cardapio e Pratos

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace FoodTruckCerrado.Models
{
    public class Cardapio
    {
        public int Id { get; set; }

        public string Nome { get; set; }

        public virtual IList<Prato> Pratos { get; set; }

        public virtual FoodTruck FoodTruck { get; set; }

        public int FoodTruckId { get; set; }


    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace FoodTruckCerrado.Models
{
    public class Prato
    {
        public int Id { get; set; }

        public string Nome { get; set; }

        public string Descricao { get; set; }

        public double Preco { get; set; }

        public virtual Cardapio Cadapio { get; set; }

        public int CardapioId { get; set; }


    }
}

Aqui deveria ser assim:

 public Cardapio BuscaPorPratos(int idCardapio)
 {
        using(var contexto = new EntidadeConexao())
        {
            var BuscaPratos = contexto.Cardapios
                 .Where(c => c.Id == idCardapio)
                 .Include(c => c.Pratos)
                 .FirstOrDefault();
            return BuscaPratos;
        }
 }

porque na expressão de consulta está claro que retorna somente um elemento de Cardapior aonde possui uma lista de pratos

Na sua View:

@model FoodTruckCerrado.Models.Cardapio

<h2>MostarCardapior</h2>

<h3>@Model.Nome</h3>
<table class="table table-hover">
    <thead>
        <tr>
            <th>Nome</th>
        </tr>
    </thead>
    
    @foreach(var prato in Model.Pratos)
    {
        <tr>
            <td>@prato.Nome</td>
        </tr>
    }

Boa tarde @Dragoon,

Muito obrigado, ficou redondinho.
Teria como você me explicar o que exatamente faz o @Model.Nome

Imprime na tela o nome do Cardapio! Cardapio.Nome

Puts é mesmo
rsrsrsrssr

Obrigado ai