ASP.Net Web API правильно показывает в VS, но дает HTTP500

После большой помощи вчера я столкнулся с известной ошибкой в бета-версии asp.net4 - я обновился до VS2012 RC Express (4.5), и теперь я получаю внутреннюю ошибку сервера, и я не могу понять, почему. Я создаю веб-API:

Модель

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

Затем я использовал мастер Add Controller, выбрал «Шаблон: API-контроллер с актами чтения / записи, используя Entity Framework», выбрал tblCustomerBooking в качестве моего класса модели и щелкнул:

using System.Data.Entity;

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

Мой контроллер (BookingsController.cs), автоматически сгенерированный Visual Studio 2012 Express:

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

Я добавил точку останова на «return db .....» выше и проверил часть Watch в VS - она ясно показывает объект с клиентом и связанные с ним аренды:

Однако если я разрешу продолжить выполнение сценария, я просто получу ошибку http500 (как показано в Fiddler ниже):

Есть ли еще код, который я могу добавить в контроллер, чтобы увидеть, почему он дает ошибку? Или кто-нибудь может увидеть, что может быть не так? VS, кажется, получает его нормально, как показано на первом скриншоте, но, похоже, не может отправить его.

Спасибо за любую помощь или указатели,

Отметк

Обновит

Привет, я просто слишком много спрашиваю об API? Разве невозможно (из коробки) просто вернуть объекты с отношениями один ко многим? Может ли он создать только один список объектов?

Спасибо, Марк

Ответы на вопрос(7)

Ваш ответ на вопрос