ASP.Net Web API wyświetla się poprawnie w VS, ale daje HTTP500

po wczorajszej pomocy natrafiłem na znany błąd w asp.net4 beta - zaktualizowałem do VS2012 RC Express (4.5), a teraz otrzymuję wewnętrzny błąd serwera i nie widzę powodu. Tworzę web API:

Model

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; }
    }
}

Następnie użyłem kreatora dodawania kontrolera, wybrałem opcję „Szablon: kontroler API z aktorzami odczytu / zapisu, używając Entity Framework”, wybrałem tblCustomerBooking jako moją klasę modelu i kliknąłem, co oznacza:

using System.Data.Entity;

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

Mój kontroler (BookingsController.cs) automatycznie generowany przez Visual Studio 2012 Express to:

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();
        }
    }
}

Dodałem punkt przerwania w „db db .....” powyżej i sprawdziłem część Watch w VS - wyraźnie pokazuje obiekt, wraz z klientem, i powiązane wypożyczenia:

Jeśli jednak pozwolę na kontynuowanie skryptu, otrzymuję tylko błąd http500 (jak pokazano w Skrzypku poniżej):

Czy jest jeszcze jakiś kod, który mogę dodać do kontrolera, aby pozwolić mi zobaczyć, dlaczego jest on błędny? Czy ktoś może zobaczyć, co może być nie tak? Wygląda na to, że VS odzyskuje to, jak pokazano na pierwszym zrzucie ekranu, ale wydaje się, że nie jest w stanie go wysłać.

Dziękujemy za pomoc lub wskazówki,

znak

Aktualizacja

Cześć - czy po prostu żądam za dużo API? Czy nie jest możliwe (po wyjęciu z pudełka), aby po prostu zwracał obiekty z jedną do wielu relacji? Czy może naprawdę stworzyć tylko jedną listę obiektów?

Dzięki, Mark

questionAnswers(7)

yourAnswerToTheQuestion