ASP.Net Web API se muestra correctamente en VS pero da HTTP500

después de mucha ayuda ayer, me encontré con un error conocido en asp.net4 beta: actualicé a VS2012 RC Express (4.5) y ahora recibo un error interno del servidor y no veo por qué. Estoy creando una API web:

Modelo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;

namespace MvcApplication6.Models
{
    public class tblCustomerBooking
    {
        [Key()]
        public int customer_id { get; set; }
        public string customer_name { get; set; }
        public string customer_email { get; set; }
        public virtual ICollection<tblRental> tblRentals { get; set; }
    }

    public class tblRental
    {
        [Key()]
        public int rental_id { get; set; }
        public int room_id { get; set; }
        public DateTime check_in { get; set; }
        public DateTime check_out { get; set; }
        public decimal room_cost { get; set; }
        public int customer_id { get; set; }
        [ForeignKey("customer_id")]
        public virtual tblCustomerBooking tblCustomerBooking { get; set; }
    }
}

Luego utilicé el Asistente para agregar controladores, seleccioné "Plantilla: controlador de API con acciones de lectura / escritura, usando Entity Framework", elegí tblCustomerBooking como mi clase de modelo y hice clic, que es:

using System.Data.Entity;

namespace MvcApplication6.Models
{
    public class BookingsContext : DbContext
    {
        public BookingsContext() : base("name=BookingsContext")
        {
        }
        public DbSet<tblCustomerBooking> tblCustomerBookings { get; set; }
    }
}

Mi controlador (BookingsController.cs) generado automáticamente por Visual Studio 2012 Express es:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using MvcApplication6.Models;

namespace MvcApplication6.Controllers
{
    public class BookingsController : ApiController
    {
        private BookingsContext db = new BookingsContext();

        // GET api/Bookings
        public IEnumerable<tblCustomerBooking> GettblCustomerBookings()
        {
            return db.tblCustomerBookings.AsEnumerable();
        }
    }
}

Agregué un punto de interrupción en "return db ....." arriba, y verifiqué la parte Watch en VS - muestra claramente el objeto, con el cliente y los alquileres asociados:

Sin embargo, si permito que el script continúe, solo obtengo un error http500 (como se muestra en Fiddler a continuación):

¿Hay algún código más que pueda agregar al controlador para que pueda ver por qué se está produciendo un error? ¿O alguien puede ver lo que puede estar mal? VS parece recuperarlo bien, como se muestra en la primera captura de pantalla, pero no parece poder enviarlo.

Gracias por cualquier ayuda o punteros,

marca

Actualizar

Hola, ¿simplemente estoy pidiendo demasiado de la API? ¿No es posible (fuera de la caja) simplemente devolver objetos con una o muchas relaciones? ¿Puede realmente solo producir una sola lista de objetos?

Gracias mark

Respuestas a la pregunta(7)

Su respuesta a la pregunta